function arrayToList(array) {
let list = [];
for(let element of array) {
list = {value: element, rest: list};
}
return list;
}
console.log(arrayToList([1, 2, 3]));
// -> {value: 1, rest: { value: 2, rest: { value: 3, rest: [] } }}
在这段代码中,这行是什么?你能描述一下吗? list = {value:element,rest:list};
function listToArray(list) {
let array = [];
for(let node = list; node; node = node.rest) {
array.push(node.value);
}
return array;
}
console.log({value: 1, rest: { value: 3, rest: [] }});
// -> [1, 3];
在此代码中,此行如何工作? for(let node = list; node; node = node.rest){expression}
答案 0 :(得分:1)
它递归地嵌套对象内的数组值。第二个函数将它们退回到一个数组中。
它让我想起一个链表。虽然我无法想象为什么这会在像JavaScript这样有效缺乏指针的语言中有用。