Tsu*_*una 2 javascript for-loop
我只是在阅读一本书,但它没有提到使用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]
Run Code Online (Sandbox Code Playgroud)
for (var node = list; node; node = node.rest)这是我不明白它是如何工作的部分.它是如何开始或结束的.
我只是有一个简单的猜测自己开始,节点是一个对象所以如果node != null那时node = list,node = node.rest哪个是下一个对象
for循环有三个参数:
for ([initialization]; [condition]; [final-expression])
Run Code Online (Sandbox Code Playgroud)
var node = list; 循环启动时运行.
node 是条件,如果它是假的,循环将不会再次出现.
node = node.rest 在循环结束时运行.
所以:
它设置node为list然后继续替换node先前nodes rest属性的值.
最后node是{ value: 30, rest: null },因此它设置node于null再测试,如果null是true,然后停止,因为它不是.