创建一个新数组并合并

时间:2015-08-13 13:33:20

标签: javascript arrays object underscore.js

javascript中是否有函数或者使用underscore.js来创建一个在对象中包含新值的新数组? 我想先重命名我的对象的值:year:“AllYears”和fruit:“AllFruits”

MyArray1 = [{year: "2013", fruit: "banana", quantity: 1},{year: "2014", fruit: "orange", quantity: 1},{year: "2014", fruit: "banana", quantity: 2}]

我想创建一个带有新值的新MyArray2和带有MyArray1的CONCAT

MyArray2  = [{year: "AllYear", fruit: "AllFruits", quantity: 1},{year: "AllYear", fruit: "AllFruits", quantity: 1},{year: "AllYear", fruit: "AllFruits", quantity: 2}]

谢谢!

2 个答案:

答案 0 :(得分:1)

使用Underscore的_.map组合来创建新的数组元素,使用_.extend来复制和修改对象。

Array2 = _.map(Array1, function(elt) {
  return _.extend({}, elt, { year: "AllYear", fruit: "AllFruit" });
});

请注意,要更改值,我们不想直接执行此操作,因为它会更改Array1中的值,因此我们需要复制每个对象,我们已经完成了使用下划线_.extend,同时指定新值。

答案 1 :(得分:0)