2017-02-27 20 views
0

我的陣列是如下迭代在陣列對象和變更值的

var values = [ 
{"firstname":"A","middlename":"B","lastname":"C"}, 
{"firstname":"L","middlename":"M","lastname":"N"}, 
{"firstname":"X","middlename":"Y","lastname":"Z"} 
]; 

我想改變所有的鍵的值 - 該數組中姓名,中間名和姓。

var newValues = []; 
angular.forEach(values, function(item, key) { 
    changedValues = {}; 
    angular.forEach(item, function(value, key1) { 
      var changedValue = value + "constant"; 
      changedValues[key1] = changedValue 
    }); 
    newValues .push(changedValues)  
}); 

對此的任何幫助表示讚賞。提前致謝。

+0

的可能的複製[修改對象屬性中的對象的陣列](http://stackoverflow.com/questions/16691833/modify-object-property-in-an-array-of-objects) –

回答

0

我認爲什麼是你想實現的是一個地圖

你可以做這樣的事情:

var values = [ 
{"firstname":"A","middlename":"B","lastname":"C"}, 
{"firstname":"L","middlename":"M","lastname":"N"}, 
{"firstname":"X","middlename":"Y","lastname":"Z"} 
]; 

var newArray = value.map(function(item) { 
    return { 
    "firstname" : item.firstname + "constant", 
    "middlename": item.middlename + "constant", 
    "lastname" : item.lastname + "constant" 
    } 
}) 
2

var values = [{ 
 
    "firstname": "A", 
 
    "middlename": "B", 
 
    "lastname": "C" 
 
    }, 
 
    { 
 
    "firstname": "L", 
 
    "middlename": "M", 
 
    "lastname": "N" 
 
    }, 
 
    { 
 
    "firstname": "X", 
 
    "middlename": "Y", 
 
    "lastname": "Z" 
 
    } 
 
]; 
 
console.log(values.map(o => { 
 
    return Object.keys(o).map(n => o[n] += "constant") 
 
}));

+1

這創建了一個缺失鍵的數組,而不是一個對象數組 – baao

+0

@baao OP沒有提到特定的輸出。他只說:「我想改變價值觀。* – Weedoze

0

您可以使用map()reduce()並返回新的對象數組。

var values = [ 
 
    {"firstname":"A","middlename":"B","lastname":"C"}, 
 
    {"firstname":"L","middlename":"M","lastname":"N"}, 
 
    {"firstname":"X","middlename":"Y","lastname":"Z"} 
 
] 
 

 
var newValues = values.map(function(e) { 
 
    return Object.keys(e).reduce(function(r, k) { 
 
    return r[k] = e[k] + 'constant', r 
 
    }, {}) 
 
}) 
 

 
console.log(newValues)

0

地圖上的對象,然後改變每個條目的值:

var values = [{ 
 
    "firstname": "A", 
 
    "middlename": "B", 
 
    "lastname": "C" 
 
    }, 
 
    { 
 
    "firstname": "L", 
 
    "middlename": "M", 
 
    "lastname": "N" 
 
    }, 
 
    { 
 
    "firstname": "X", 
 
    "middlename": "Y", 
 
    "lastname": "Z" 
 
    } 
 
]; 
 

 
let newValues = values.map(v => { 
 
    let obj = {}; 
 
    for (let k in v) { 
 
    if (v.hasOwnProperty(k)) 
 
     obj[k] = v[k] + "constant"; 
 
    } 
 
    return obj; 
 
}); 
 

 
console.log(newValues);