javascript - 程序只输出部分链表而不是整个链表

标签 javascript arrays linked-list console.log

我将数组转换为链表,并将链表转换为数组。我的问题是,我得到的链接列表的控制台日志不正确,但从该链接列表创建的数组的控制台日志正确。

在下面的代码中,我从 listToArray() 获得了 [1, 2, 3, 4, 5] 的预期输出。但是使用 arrayToList(),我的输出是 { 值:1,休息:{ 值:2,休息:{ 值:3,休息:[对象] } } }。值 4 和 5 发生了什么?它们应该在那里,因为在本例中,listToArray() 使用从 arrayToList() 创建的相同列表。

var array = [1, 2, 3, 4, 5];

var arrayToList = function(arr) {
  var list = {};
  var head = list;

  for (i = 0; i < arr.length; i += 1) {
    list.value = arr[i];
    list.rest = {};

    if (i == arr.length - 1) {
      list = null;
    } else {
      list = list.rest;
    }
  }

  return head;
}

var listToArray = function(list) {
  var arr = [];
  var index = 0;

  while(list.rest != null) {
    arr[index] = list.value;
    list = list.rest;
    index += 1;
  }

  return arr;
}

console.log(listToArray(arrayToList(array)));
console.log(arrayToList(array));

最佳答案

您是在浏览器还是 Node.js 中运行?不同的环境有不同的控制台行为。在 Node 中,当您执行 console.log(someObject) 时,它将调用 util.inspect将您的对象转换为字符串。 util.inspect 的默认递归深度为 2,之后它将仅显示 [Object]

你可以试试

console.log(util.inspect({depth: null}));

关于javascript - 程序只输出部分链表而不是整个链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44040525/

相关文章:

c - 这是链表中remove_from_front的正确实现吗?

javascript - 如何在 NPM 包中使用 webpack 动态导入?

java - 在这个问题中如何只返回需要的值而没有 0 和空值?

python - 一串输入 : Ints seperated by ' ' need to print array in reverse

python - F2py 转换字符(*) 段错误

java - 在java中序列化/反序列化自定义链表的正确方法?

C 链表向末尾添加节点

javascript - 正则表达式 : backreferences inside []

javascript - 如何在我的 Facebook 页面被点赞后添加重定向?

php - 限制数据库请求