2016-03-03 86 views
-3

我有一个JavaScript阵列,其具有后续的结构:添加字段添加到新的JavaScript阵列复制

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

现在通过命令“推”我能够使这个数组的一个副本。我的问题是如何将新元素(NEWFIELD)添加到新阵列,变成这个样子:

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

如何计算或获得'newfield'的价值? – nikhil

+0

通过其他2个领域的分割。像NEWFIELD =路由/容器。 @nikhil –

回答

0
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); 
+0

他的标记JSON让我困惑。 –

0

你可以尝试像下面

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; 
});