这是我的数组
Array1 = [{year: "2013", fruit: "banana", quantity: 1},{year: "2014", fruit: "orange", quantity: 1},{year: "2014", fruit: "banana", quantity: 2}]
我的功能是复制Array1:
var Array2 = Array1;
for (var i = 0, len = Array1.length; i < len; i++) {
Array2[i] = Array1[i];
}
但我想在Array2中将所有值更改为我的键“year”并将值设为“AllYear”:
Array2 = [{year: "AllYear", fruit: "banana", quantity: 1},{year: "AllYear", fruit: "orange", quantity: 1},{year: "2014", fruit: "banana", quantity: 2}]
答案 0 :(得分:2)
使用map
,但请确保返回新对象:
var Array2 = Array1.map(function (el) {
return { fruit: el.fruit, year: 'AllYear', quantity: el.quantity }
});
答案 1 :(得分:0)
// js
var Array2 = Array1
for (var i = 0, len = Array1.length; i < len; i++) {
Array2[i].year = "AllYear";
}
参考此解决方案:Jsfiddle
我希望这会有所帮助!
答案 2 :(得分:0)
你可以这样做
Array2 = Array1.slice(0); //copy array1 elements to array2
Array2 = Array2.map(function (el) {
var copy = {};
for (var attr in el) {
if (el.hasOwnProperty(attr)) copy[attr] = el[attr];
}
copy.year = 'AllYear';
return copy ;
});
答案 3 :(得分:0)
init_printing