You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript数组转链表:如何修正最终rest值为null

问题解决:数组转链表函数的输出修正

问题原因

你的循环从arr.length开始遍历,而数组的有效索引范围是0到arr.length - 1,这导致多执行了一次循环,处理了不存在的数组元素arr[arr.length](值为undefined)。JSON序列化时会自动忽略值为undefined的属性,所以最终输出里会多出一个仅包含rest: null的嵌套对象。

修正后的代码

function array_to_list(arr) {
  let list = null;

  // 从数组最后一个有效元素开始遍历
  for (let i = arr.length - 1; i >= 0; i--) {
    list = { value: arr[i], rest: list };
  }

  return list;
}
const x = array_to_list([10, 20]);
console.log(JSON.stringify(x));

关键修改点

  • 调整循环范围:将循环起始索引改为arr.length - 1,确保只处理数组中存在的元素,避免多生成一个无效节点
  • 变量声明规范:给list和循环变量i加上let声明,避免变量泄漏到全局作用域;用const声明x,符合不可变变量的使用习惯

修正后输出

{"value":10,"rest":{"value":20,"rest":null}}

内容的提问来源于stack exchange,提问作者VOZ ESTOICA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 11:29:57