Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create Array by Dynamic Keys and Values

I am getting a value in string in a variable, i.e

let name = 'Vishesh';
let name2 = 'Vishesh2';

and an Array i.e

let cars = [{carName: "Mercedes"},{carName: "Volvo"},{carName:"BMW"}];

Now I want to create an Array where my Key is the name and in value, there should be cars array, i.e

Array=[{Vishesh: [{carName: "Mercedes"},{carName: "Volvo"},{carName:"BMW"}]},{Vishesh2: [{carName: "Mercedes"},{carName: "Volvo"},{carName:"BMW"}]}];
like image 648
Vishesh Avatar asked Dec 31 '25 03:12

Vishesh


2 Answers

let name = 'Vishesh';
let name2 = 'Vishesh2';
let cars = [{carName: "Mercedes"},{carName: "Volvo"},{carName:"BMW"}];
let array = []

array.push({[name]:cars})
array.push({[name2]:cars})
console.log(array);
like image 87
N.chauhan Avatar answered Jan 01 '26 20:01

N.chauhan


You can interpolate the names directly into the dictionary construction as a key.

let name = 'Vishesh';
let name2 = 'Vishesh2';
 
console.log([
  {
    [name]: [
      { carName: "Mercedes" },
      { carName: "Volvo" },
      { carName:"BMW" }
    ]
  },
   {
    [name2]: [
      { carName: "Mercedes" },
      { carName: "Volvo" },
      { carName:"BMW" }
    ]
  }
]);

But you can do this a bit more dynamically

let name = 'Vishesh';
let name2 = 'Vishesh2';
let cars = [
  { carName: "Mercedes" },
  { carName: "Volvo" },
  { carName:"BMW" }
];

function keyByNames(names, cars) {
  let named = {}
  names.forEach(name => {
    named[name] = JSON.parse(JSON.stringify(cars))
  })
  return named
}

console.log(keyByNames([ name, name2 ], cars));
like image 20
Callam Avatar answered Jan 01 '26 19:01

Callam



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!