正在学习 JavaScript...我希望有人解释一下这段代码如何为我工作,特别是标记行:
function arrayToList(array) {
let list = null;
for (let i = array.length - 1; i >= 0; i--) {
list = {value: array[i], rest: list}; //<----- this line
}
return list;
}
console.log(arrayToList([10, 20, 30]));
最佳答案
在 JavaScript 中,原样不存在链表,但可以使用对象来实现该结构。在链表中,每个元素都指向下一个元素,最后一个元素指向 null。
使用大括号时,您正在定义一个 Javascript 对象,其属性为 value 和 rest。在这种情况下,循环首先获取数组的最后一个元素,并创建一个模拟链表元素的对象:
{ value: 30, rest: null }
然后,对于以下元素,通过链接到紧邻的前一个元素来创建另一个对象:
{ value: 20, rest: { value: 30, rest: null } }
最后,创建列表中的第一个项目,该项目指向前一个项目,从而形成链接列表:
{ value: 10, rest: { value: 20, rest: { value: 30, rest: null } } }
您可以在维基百科 Linked List 中了解有关链表的更多信息。页。
关于javascript - 请为我解释一下这段 Javascript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58259381/