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.

1

4 Answers 4

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")
}));

Sign up to request clarification or add additional context in comments.

2 Comments

That creates an array of arrays with missing keys, not an array of objects
@baao OP did not mention a specific output. He only said "I want to change values..*
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"
  }
})

Comments

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)

Comments

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);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.