更改数组对象的值

时间:2015-08-14 12:49:07

标签: javascript arrays object underscore.js

这是我的数组

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

4 个答案:

答案 0 :(得分:2)

使用map,但请确保返回新对象:

var Array2 = Array1.map(function (el) {
  return { fruit: el.fruit, year: 'AllYear', quantity: el.quantity }
});

DEMO

答案 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