创建一个新数组并合并
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
,同时指定新值。
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
,同时指定新值。