创建一个新数组并合并

Create a new array and merge

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}]

谢谢!

您可以尝试将 MyArray1 推送到 MyArray2:

MyArray2.push(MyArray1);

使用 Array.prototype.map or Array.prototype.forEach 并编辑值。

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

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

请注意,要更改值,我们不想直接这样做,因为它会更改 Array1 中的值,所以我们需要为每个对象制作一个副本,我们已经这样做了使用 Underscore 的 _.extend,同时指定新值。