gpt4 book ai didi

javascript - Javascript/React Native 中奇怪的数组行为

转载 作者:行者123 更新时间:2023-11-28 11:04:42 24 4
gpt4 key购买 nike

我是 ReactNative/Javascript 新手。我注意到的一件奇怪的事情是,如果我有一个来自参数的数组(例如:[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] 并将其分配给另一个变量,那就没有问题了。

最佳答案

我尝试重现this但结果正如预期的那样。

没有更多信息来进行调试和调查。我认为最大的罪魁祸首可能是OP复制数组的方式。

通过做

var result = array;

如果array值以某种方式发生变化,所有变化也将反射(reflect)在result中。 (example here)

您可以尝试使用slice() .

var result = array.slice();

这个答案超过here解释一下为什么 slice() 可以防止上述问题。

关于javascript - Javascript/React Native 中奇怪的数组行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55703366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com