【发布时间】: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