gpt4 book ai didi

javascript - 为什么我不能在 while 循环中使用数组作为 'specified condition' ?

转载 作者:行者123 更新时间:2023-12-02 21:03:31 25 4
gpt4 key购买 nike

所以我有这个代码:

var myArray = [];

var value = 5;

while (myArray != [5, 4, 3, 2, 1, 0]) {

myArray.push(value)

value--;

console.log(myArray);

}

当我查看控制台时,它会像这样无限循环......

[ 5 ]
[ 5, 4 ]
[ 5, 4, 3 ]
[ 5, 4, 3, 2 ]
[ 5, 4, 3, 2, 1 ]
[ 5, 4, 3, 2, 1, 0 ]
[ 5, 4, 3, 2, 1, 0, -1 ]
[ 5, 4, 3, 2, 1, 0, -1, -2 ]
[ 5, 4, 3, 2, 1, 0, -1, -2, -3 ]

......

为什么它不停止在 [5,4,3,2,1,0] 处? myArray = that 在某个点并且 for 循环应该停止吗?

抱歉提出了菜鸟问题。

最佳答案

JavaScript 不提供对数组结构相等的内置支持,但实现比较器很简单:

function arraysEqual(a, b, orderSensitive = true) {
// Function from https://stackoverflow.com/a/16436975/159145
// But modified to add the `orderSensitive` option.

if (a === b) return true;
if (a == null || b == null) return false;
if (a.length != b.length) return false;

if (!orderSensitive) {
a = Array.from(a).sort();
b = Array.from(b).sort();
}

for (var i = 0; i < a.length; ++i) {
if (a[i] !== b[i]) return false;
}
return true;
}

function yourCode() {
var myArray = [];
var value = 5;
const finalArray = [5, 4, 3, 2, 1, 0];

while (!arraysEqual(myArray,finalArray)) {
myArray.push(value)
value--;
console.log(myArray);
}
}

关于javascript - 为什么我不能在 while 循环中使用数组作为 'specified condition' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61282078/

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