Comment convertir un objet {} en un tableau [] de paires clé-valeur en JavaScript ?

Je veux convertir un objet comme ceci :

{"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}

en un tableau de paires clé-valeur comme ceci :

[[1,5],[2,7],[3,0],[4,0]...].

Comment convertir un objet en un tableau de paires clé-valeur en JavaScript ?

Solution

Pour ce faire, vous pouvez utiliser [Object.keys()][1] et [map()][2].

var obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
var result = Object.keys(obj).map(function(key) {
  return [Number(key), obj[key]];
});

console.log(result);

[1] : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys [2] : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

Commentaires (2)

Utilisez les méthodes [Object.keys][1] et [Array#map][2].

var obj = {
  "1": 5,
  "2": 7,
  "3": 0,
  "4": 0,
  "5": 0,
  "6": 0,
  "7": 0,
  "8": 0,
  "9": 0,
  "10": 0,
  "11": 0,
  "12": 0
};
// get all object property names
var res = Object.keys(obj)
  // iterate over them and generate the array
  .map(function(k) {
    // generate the array element 
    return [+k, obj[k]];
  });

console.log(res);

[1] : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/keys [2] : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

Commentaires (0)

Dans Ecmascript 6,

var obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0};

var res = Object.entries(obj);

console.log(res);

[fiddle][1]

[1] : https://jsfiddle.net/nagesh521/5kdg23us/

Commentaires (2)