0

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.

  • Possible duplicate of [Modify object property in an array of objects](http://stackoverflow.com/questions/16691833/modify-object-property-in-an-array-of-objects) – Heretic Monkey Feb 27 '17 at 16:01

4 Answers4

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")
}));
Weedoze
  • 13,683
  • 1
  • 33
  • 63
0

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"
  }
})
Lucas Katayama
  • 4,445
  • 27
  • 34
0

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)
Nenad Vracar
  • 118,580
  • 15
  • 151
  • 176
0

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);
baao
  • 71,625
  • 17
  • 143
  • 203