gpt4 book ai didi

javascript - 从数组创建嵌套列表

转载 作者:行者123 更新时间:2023-12-03 09:27:30 24 4
gpt4 key购买 nike

这是 Eloquent JavaScript 第 4 章中的第三个问题。

基本上,它希望我创建一个函数,将数组变成数组的嵌套列表。

例如arrayToList([1, 2, 3]) 应该返回:

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

我想知道为什么我的代码会导致无限循环。

function arrayToList(arr) {
var list = {};
for (var i = 0; i < arr.length; i++) {
var a = arr[i];
function add(res) {
if (i == 0) {
res.value = a;
res.rest = "null";
}
else {
i -= 1;
add(res.rest);
}
}
add(list);
}
return list;
}

感谢您的浏览!

最佳答案

如果 i 不是 0,则在循环中间减去 1 - 因此它永远不会完成 for - 您可以为此使用递归!

function addToList(obj, arr, index) {
obj.value = arr[index];
if (index == (arr.length - 1)) {
obj.rest = null
} else {
obj.rest = {};
addToList(obj.rest, arr, index + 1)
}
}

var myObj = {};
var arr = [1,2,3];

addToList(myObj, arr, 0)

演示:http://jsfiddle.net/freab275/

关于javascript - 从数组创建嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31619486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com