Les variables du code ont été effacées de manière inexplicable, comme le montre la figure ci-dessous :
Le code est le suivant :
function rolldiceSumProb(arr, sides){
let prob, result=[];
let dig = function(target, count, methods) {
if (count > sides) return false
console.log('dig', target, count)
for (let i=1; i<=6; i++) {
console.log('target:', target, 'count:', count, 'cur_i:', i, target+i==arr, sides==count)
if (target+i==arr && sides==count) {
methods.push(i)
result.push(methods)
console.log(methods, result, 'quit')
methods.pop()
return false
}
else {
methods.push(i)
if (target+i < arr) dig(target+i, count+1, methods)
methods.pop()
}
}
}
dig(0, 1, [])
console.log('res', result)
return prob;
}
rolldiceSumProb(11, 2)
.methods
一直都是用的同一个……虽然它被添加到result
est là, mais c'est juste une référence ajoutée, pas une copie. Vous pouvez ajouter un résultat copié, tel queOu utilisez la syntaxe es5
Ce que vous transmettez dans le résultat est une référence à la méthode. Si vous effacez la méthode, le résultat n'aura naturellement aucune valeur. Vous devez copier la méthode et la transmettre dans le résultat.