将字段添加到新的 JavaScript 数组副本

Add field to a new JavaScript array copy

本文关键字:JavaScript 数组 副本 字段 添加      更新时间:2023-09-26

我有一个JavaScript数组,其结构如下:

[{id:'id1', container:'3', routing:'4'},{id:'id2', container:'2', routing:'5'},..]

现在通过命令"push",我能够复制这个数组。我的问题是如何在新数组中添加一个新元素(NEWFIELD),变成这样:

[{id:'id1', container:'3', routing:'4',NEWFIELD:'X'},{id:'id2', container:'2', routing:'5',NEWFIELD:'Y'},..]

你可以尝试如下

var arr = [{id:'id1', container:'3', routing:'4'},{id:'id2', container:'2', routing:'5'},..];
var new_arr = arr.map(function(item){
    var clone = Object.assign({}, item); // Objects are pass by referenced, hence, you need to clone object
    clone.NEWFIELD = clone.routing/clone.container;
    return clone;
});
var arr = [{id:'id1', container:'3', routing:'4'},{id:'id2', container:'2', routing:'5'}];
 // clone an array
var newArr = arr.map(function(e) {
    return JSON.parse(JSON.stringify(e));
});
// add new field
newArr.forEach(function(e) {
    e['NEWFIELD'] = e.routing / e.container;
});
console.log(arr);
console.log(newArr);