2017-02-27 40 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);