Javascript 置换函数变量范围错误,赢得';t更新功能范围之外的结果arr var结果=[]; 让计数=0; 设置换=函数(arr,ans,M){ 如果(ans.length==M){ 结果:推送(ans); } for(设i=0;i
当IJavascript 置换函数变量范围错误,赢得';t更新功能范围之外的结果arr var结果=[]; 让计数=0; 设置换=函数(arr,ans,M){ 如果(ans.length==M){ 结果:推送(ans); } for(设i=0;i,javascript,permutation,Javascript,Permutation,当Iconsole.log在if语句中时,argumentanscorrect显示置换数组,但当我将其推送到result时,它不会正确地推送它 我希望结果包含所有置换数组。您需要从数组ans获取副本。如果直接按下ans,则获取对象引用,最后该数组为空,与所有结果条目一样 var结果=[]; 让计数=0; 设置换=函数(arr,ans,M){ 如果(ans.length==M){ 结果:推(ans.slice()); // ^^^^^^^ } for(设i=0;ia.
console.log
在if语句中时,argumentans
correct显示置换数组,但当我将其推送到result时,它不会正确地推送它
我希望结果包含所有置换数组。您需要从数组
ans
获取副本。如果直接按下ans,则获取对象引用,最后该数组为空,与所有结果条目一样
var结果=[];
让计数=0;
设置换=函数(arr,ans,M){
如果(ans.length==M){
结果:推(ans.slice());
// ^^^^^^^
}
for(设i=0;ia.join(“”))代码>
var result = [];
let count = 0;
let permutation = function (arr, ans, M) {
if (ans.length === M) {
result.push(ans);
}
for (let i = 0; i < arr.length; i++) {
ans.push(arr[i]);
permutation(arr.slice(0,i).concat(arr.slice(i + 1)), ans ,M);
ans.pop()
}
}
permutation([1,2,3], [], 3);
return result