我是ReactNative / Java的新手。我注意到的一件奇怪的事情是,如果我有一个来自参数(例如:[1, 0, 1, -1]
)的数组,并将其分配给另一个变量,然后console.log
,它将得到无限数组内容。
myFunc = (array) => {
console.log("ARRAY:");
console.log(array);
var result = array;
console.log("RESULT:");
console.log(result);
}
iOS中生成的控制台日志:
ARRAY:
[ 1, 0, 1, -1 ]
RESULT:
[ 1,
0,
1,
-1,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
... 100 more rows
,
[] ]
为什么会这样?以及如何正确地将数组内容从一个变量分配给另一个?
请注意,仅当从参数获取数据时才会发生这种情况。如果我随随便便有了var array = [1, 0, 1, -1]
并将其分配给另一个变量,那就没问题了。
答案 0 :(得分:-4)
我尝试重现this,但结果符合预期。
没有更多信息来进行调试和调查。我认为最大的罪魁祸首可能是OP复制阵列的方式。
这样做
var result = array;
如果array
的值有所更改,所有更改也将反映在result
中。 (example here)
您可以尝试使用slice()
。
var result = array.slice();
这个对here的回答解释了很多有关slice()
阻止上述问题的原因。