Quiero convertir un objeto como este:
{"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 array de pares clave-valor como este:
[[1,5],[2,7],[3,0],[4,0]...].
¿Cómo puedo convertir un objeto en un array de pares clave-valor en JavaScript?
Puedes utilizar Object.keys()
y map()
para hacerlo
begin snippet: js hide: false console: true babel: false -->
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);
Utiliza los métodos Object.keys
y Array#map
.
begin snippet: js hide: false console: true babel: false -->
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);
En 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]