javascript - 请为我解释一下这段 Javascript 代码

标签 javascript arraylist

正在学习 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。

A linked list whose nodes contain two fields: an integer value and a link to the next node. The last node is linked to a terminator used to signify the end of the list.

使用大括号时,您正在定义一个 Javascript 对象,其属性为 valuerest。在这种情况下,循环首先获取数组的最后一个元素,并创建一个模拟链表元素的对象:

{ 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/

相关文章:

javascript - 如何在彼此之后而不是并行运行javascript超时?

java - 如何循环遍历字符串然后查找该字符串的一部分是否在 arrayList 中

Java - 如何遍历 ArrayList 以添加元素?

Java Tiled map 正在横向绘制

javascript - 应用 onClick()、onMouseOver() 和 onMouseOut() 更改图像时出现问题

javascript - 我在尝试访问和设置数据库中的外键时遇到问题

java - 如何使用 JAVA 从 ArrayList 返回输入

java - 利用继承来打印引用

javascript - super 喜欢可拖动 map

javascript - 在 React 组件的 props 中使用 mjackson 的 Expect spy 功能