在代码中,我认为第一个值的“ i”应为= 1,为什么它的0会变成
function arrayToList(array) {
var list = null;
for (var i = array.length - 1; i >= 0; i--)
list = {
value: array[i],
rest: list
};
return list;
}
console.log(arrayToList([10, 20])); // → {value: 10, rest: {value: 20, rest: null}}
答案 0 :(得分:2)
它是1
,正如您在循环中看到的值的输出一样。
function arrayToList(array) {
var list = null;
for (var i = array.length - 1; i >= 0; i--) {
console.log(i, array[i]);
list = { value: array[i], rest: list };
}
return list;
}
console.log(arrayToList([10, 20])); // → {value: 10, rest: {value: 20, rest: null}}
答案 1 :(得分:0)
正如Nina Scholz所说的,它是第一次迭代中的1
。您只是看不到它,因为该值已被最后一次迭代0
取代。
因为您正在做list = { value: array[i], rest: list };
。它将第一个list
值替换为i = 1
。如果您执行类似push
的操作list
(需要为此定义list.push({ value: array[i], rest: list };)
作为数组)。
为使您可以在第一次迭代中看到它是i = 1
,请在for循环本身中执行console.log
的{{1}}。
list