我想在“中创建一个链接列表”;javascript";

我想在“中创建一个链接列表”;javascript";,javascript,arrays,Javascript,Arrays,我想创建一个函数,它接收数组并返回一个链表,例如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--) {

我想创建一个函数,它接收数组并返回一个链表,例如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;
      }

以不同的视角,

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);
}
函数数组列表(arr){
设bfrLst='{';
设t='';
for(设i=0;i
你能更详细地描述一下它是如何“不起作用”的吗?提示:在编辑问题时,你也可以使用“snippet”选项,直接将此javascript转换为问题中的可执行代码段。我想,在“添加”之前的每次迭代中,你都忘了保存“当前状态的
列表
”这里有一些新内容。请尝试以下操作:
main.rest=Object.assign({},list)
(而不是
main.rest={}
函数arrayToList(list){if(list.length==0)返回空常量[value,….rest]=list;返回{value,rest:arrayToList(rest)}