gpt4 book ai didi

javascript - Eloquent Javascript 列表返回 undefined ,为什么?

转载 作者:太空宇宙 更新时间:2023-11-04 16:23:31 25 4
gpt4 key购买 nike

任务

<小时/>

列表

对象作为通用的值 block ,可用于构建各种数据结构。常见的数据结构是列表(不要与数组混淆)。列表是一组嵌套的对象,第一个对象保存对第二个对象的引用,第二个对象保存对第三个对象的引用,依此类推。

变量列表={ 值:1, 休息: { 值:2, 休息: { 值:3, 其余:空 } }};生成的对象形成一条链,如下所示:

链表列表的一个好处是它们可以共享部分结构。例如,如果我创建两个新值{value:0,rest:list}和{value:-1,rest:list}(list引用前面定义的变量),它们都是独立的列表,但它们共享构成最后三个元素的结构。另外,原始列表仍然是一个有效的三元素列表。

编写一个函数 arrayToList,在给定 [1, 2, 3] 时构建一个与前一个类似的数据结构

<小时/>

总体目标是创建一个函数来创建列表结构,如数据结构章节中的练习“列表”中所述。

function arrayToList(array){
var list = {};
var i = 0;
var rest = ((i < array.length) ? (i++,{value: array[i],rest: rest}): null) ;
list = {
value: array[0],
rest: rest
}
return list;
}

我希望完成的是使用剩余变量来调用自身,直到 var i 大于数组长度,但是当我运行代码时,剩余属性返回未定义...我的问题是为什么它不表现作为对相同三元 var 其余部分的递归调用。我对 javascript 相当陌生,所以任何能帮助我理解为什么会发生这种情况的建议或文章都会很棒。

最佳答案

您可以使用Array.prototype.reduce()

var list = {};
var arr = [1,2,3];
arr.reduce((o, prop, index, array) => {
o["value"] = prop;
o["rest"] = index < array.length -1 ? {} : null;
return o["rest"]
}, list);

console.log(list);

关于javascript - Eloquent Javascript 列表返回 undefined ,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40414845/

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