gpt4 book ai didi

javascript - 以不同的方法在 javascript 中添加列表

转载 作者:行者123 更新时间:2023-12-03 01:45:21 24 4
gpt4 key购买 nike

我正在向对象列表添加新元素,每个对象包含一个变量value和一个变量rest,其值作为下一个对象。将数组转换为列表的相关代码是:

function arrayToList (array) {
var obj = {
value: array[array.length-1],
rest: null
}
var temp = obj;
for (var i = 0; i < array.length-1; ++i) {
var obj = {
value: array[array.length-2-i],
rest: temp
}
temp = obj;
}

return temp;
}

我的问题是以下代码,前置函数,我需要将元素添加到列表的开头。我通过两种方式做到了这一点,一种是失败的注释方式,另一种是工作正常的对象创建方式。我不知道注释失败的方法出了什么问题。

function prepend(objList, val) {
// Failed method
/*var newObj = objList;
newObj.value = val;
newObj.rest = objList;
*/

var newObj = {
value: val,
rest: objList
};
return newObj;
}

非常感谢!

最佳答案

只需将失败的代码更改为此即可。您可能希望一个新对象开始时不使用对旧对象的实时引用。

var newObj = {};
newObj.value = val;
newObj.rest = objList;

function arrayToList (array) {
var obj = {
value: array[array.length-1],
rest: null
}
var temp = obj;
for (var i = 0; i < array.length-1; ++i) {
var obj = {
value: array[array.length-2-i],
rest: temp
}
temp = obj;
}

return temp;
}

function prepend(objList, val) {
// updated
var newObj = {};
newObj.value = val;
newObj.rest = objList;

// var newObj = {
// value: val,
// rest: objList
// };
return newObj;
}

const arr = [1, 2, 3];
console.log(prepend(arrayToList(arr), 10));

或者您可以使用 Object.assignprepend 方法中复制 objList

var newObj = Object.assign({}, objList);
newObj.value = val;
newObj.rest = objList;

关于javascript - 以不同的方法在 javascript 中添加列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50664256/

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