【问题标题】:I want to create a linked list in "javascript" [duplicate]我想在“javascript”中创建一个链接列表 [重复]
【发布时间】:2023-03-28 15:27:01
【问题描述】:

我想创建一个函数,它接受一个数组并返回一个链表,例如 arrayToList([1,2,3]) 应该返回

 list = {
value: 1,
rest: {
value: 2,
rest: {
value: 3,
rest: null
}
}
};

我已尝试执行以下操作,但它不起作用

function arrayToList(arr) {
        let list = {};
        for (let i = arr.length; i >= 0; i--) {
          let main = {};
          main.value = arr[i];
          main.rest = {};
          list.value = arr[i - 1];
          list.rest = main;
        }
        return list;
      }

【问题讨论】:

  • 你能更详细地描述一下它是如何“不起作用”的吗?
  • 提示:您也可以在编辑问题时使用“sn-p”选项,直接在问题中将此javascript转换为可执行的sn-p
  • IMO,我认为您忘记在每次迭代中“添加”新内容之前保存“list 的当前状态”。试试这个:main.rest = Object.assign({}, list)(而不是main.rest = {}
  • function arrayToList(list){ if(list.length === 0) return null const [value, ...rest] = list; return { value, rest: arrayToList(rest) } }

标签: javascript arrays


【解决方案1】:

换个角度看;

function arrayToList(arr) {
  let bfrLst = '{';
  let t = '';
  for (let i = 0; i < arr.length; i++) {
    bfrLst += '"value":' + arr[i] + ',"rest": ';
    if (i === arr.length - 1) {
      bfrLst += 'null';
    } else {
      bfrLst += '{';
    }
    t += '}';
  }
  return JSON.parse(bfrLst + t);
}

【讨论】:

    猜你喜欢
    • 2018-07-30
    • 2021-01-14
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 2020-03-16
    • 2015-06-05
    • 2017-09-15
    • 2022-09-23
    相关资源
    最近更新 更多