Cum se pot schimba cheile in obiect JS

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
Marius
Mesaje:60

Cum se pot schimba cheile in obiect JS

Am o intrebare. Vreau sa schimb cheile intr-un obiect JavaScript daca valoarea lor e un numar. De exemplu, am urmatorul obiect:

Cod: Selectaţi tot

const order = {
  wine : 100,
  vodka : 200,
  beer : 300,
  whisky : "not in stock"
};
Cum pot face sa rezulte acel obiect asa:

Cod: Selectaţi tot

const order = {
  is_nr_100 : 100,
  is_nr_200 : 200,
  is_nr_300 : 300,
  whisky : "not in stock"
};

MarPlo Mesaje:4343
Ca sa modifici cheia unei valoari dintr-un obiect JavaScript, clonezi acel element in obiect, adica, adaugi acea valoare cu noua cheie, apoi stergi elementul cu cheia veche.

Cod: Selectaţi tot

const order = {
  wine : 100,
  vodka : 200,
  beer : 300,
  whisky : "not in stock"
};

function changeKey(obj) {
  for (var prop in obj) {
    if (typeof obj[prop] === 'number') {
      obj['is_nr_' + obj[prop]] = obj[prop]
      delete obj[prop]
    }
  }
}

changeKey(order);
console.log(order);