Reputation: 28
My Array is as follows
var values = [
{"firstname":"A","middlename":"B","lastname":"C"},
{"firstname":"L","middlename":"M","lastname":"N"},
{"firstname":"X","middlename":"Y","lastname":"Z"}
];
I want to change values of all keys - firstname, middlename and lastname in this array.
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 )
});
Any help on this appreciated. Thanks in Advance.
Upvotes: 0
Views: 76
Reputation: 73221
Map over the objects, then change the values of each entry:
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);
Upvotes: 0
Reputation: 122027
You can use map()
and reduce()
and return new array of objects.
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)
Upvotes: 0
Reputation: 13943
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")
}));
Upvotes: 2
Reputation: 4570
I think what are you trying to achieve is a map
You could do something like this:
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"
}
})
Upvotes: 0