Search code examples
javascriptarraysobject

Update every value of js array with dynamic key input (Javascript)


Input js Array

var foo = 
  [ { name: 'John',   age: '30', car: 'yellow' } 
  , { name: 'shayam', age: '13', car: 'blue'   } 
  , { name: 'ram',    age: '23', car: 'red'    } 
  ];
function poo(keyName, value)
  {
  // Change all the value of JSON array according to key and value 
  }
poo("car", "orange"); // 1
poo("age","20");     // 2

expected output 1

  [ { name: "John",   age: 30,   car: "orange" } 
  , { name: "shayam", age: 13,   car: "orange" } 
  , { name: "ram",    age: "23", car: "orange" } 
  ] 

expected output 2

  [ { name: "John",   age: "20", car: "orange" } 
  , { name: "shayam", age: "20", car: "orange" } 
  , { name: "ram",    age: "20", car: "orange" } 
  ] 

Solution

  • The main key here is using dynamic object key with bracket notation, and use forEach and modify the target object without need to make a copy of it.

    var foo = [   { name: "John", age: "30", car: "yellow" },   { name: "shayam", age: "13", car: "blue" },   { name: "ram", age: "23", car: "red" }, ];
    
    const poo = (key, value) => {
      foo.forEach(i => i[key] = value)
      return foo
    }
    
    console.log(poo('car', 'orange'));
    console.log(poo('age', '20'));