gpt4 book ai didi

javascript - 从未见过这样的 for 循环 这是如何工作的?

转载 作者:行者123 更新时间:2023-12-04 23:53:14 24 4
gpt4 key购买 nike

我只是在读一本书,但它没有提到以这种方式使用 for 。我能理解的最常见的方式,但我不知道它是如何开始和结束的。

这是一个函数,其中有一个 for 循环,插入到参数中的是一个对象,它继承对象和对象,如列表。

function listToArray(list) {
var array = [];
for (var node = list; node; node = node.rest)
array.push(node.value);
return array;
}

var object = {
value: 10,
rest: {
value: 20,
rest: {
value: 30,
rest: null
}
}
}

console.log(listToArray(object));
// → [10, 20, 30]

for (var node = list; node; node = node.rest) 这是我不明白它是如何工作的部分。它如何开始或结束。

我自己只是有一个简单的猜测,节点是一个对象,所以如果 node != null 那么 node = listnode = node。 rest 这是下一个对象

最佳答案

for 循环接受三个参数:

for ([initialization]; [condition]; [final-expression])

var node = list; 在循环开始时运行。

node 是条件,如果为假,循环就不会再循环了。

node = node.rest 在循环结束时运行。

所以:

它将node设置为list,然后不断将node替换为之前节点rest属性的值.

最终 node{ value: 30, rest: null },所以它将 node 设置为 null然后测试 null 是否为 true 然后停止,因为它不是。

关于javascript - 从未见过这样的 for 循环 这是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34889647/

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