Javascript 为什么要“推”;r";数组在循环中工作不正常?
为什么下面的数组不能在循环中正确地推送到rJavascript 为什么要“推”;r";数组在循环中工作不正常?,javascript,arrays,loops,recursion,push,Javascript,Arrays,Loops,Recursion,Push,为什么下面的数组不能在循环中正确地推送到r 如果我改为If((pivot+originArr[c])我想我发现了问题 我们不能像这样克隆阵列 tempResult = i; 在我将新数字推入结果后,它将影响引用“i” 因此,我的解决方案是将克隆方式改为: tempResult = [...i]; 该克隆不会影响引用。您的变量r必须使用var或let声明。顺便提一下,对于arr和c也是如此。启用严格模式后,您将更容易发现这些问题。将此添加为文件的第一行:使用严格;您的r,arr和c变量未声明。
如果我改为
If((pivot+originArr[c])我想我发现了问题
我们不能像这样克隆阵列
tempResult = i;
在我将新数字推入结果后,它将影响引用“i”
因此,我的解决方案是将克隆方式改为:
tempResult = [...i];
该克隆不会影响引用。您的变量r
必须使用var
或let
声明。顺便提一下,对于arr
和c
也是如此。启用严格模式后,您将更容易发现这些问题。将此添加为文件的第一行:使用严格;
您的r
,arr
和c
变量未声明。这对递归函数不利。感谢您指出,更新了问题。“i”是第二次调用计算函数得到的数组。
tempResult = [...i];