我想像这样转换一个对象:

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

输入一个键值对数组,如下所示:

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

如何将对象转换为JavaScript中的键值对数组?


当前回答

你可以使用3个方法将对象转换为数组(任何人都可以参考,不仅是这个问题(第三个是最合适的,回答这个问题) 种(),Object.values (), andObject.entries ()

3种方法的示例

使用种()

const text= {
    quote: 'hello world',
    author: 'unknown'
};
const propertyNames = Object.keys(text);

console.log(propertyNames);
result
[ 'quote', 'author' ]

使用Object.values ()

const propertyValues = Object.values(text);

console.log(propertyValues);

结果

[ 'Hello world', 'unknown' ]

使用Object.entires ()

const propertyValues = Object.entires(text);

console.log(propertyValues);

结果

[ [ 'quote', 'Hello world' ], [ 'author', 'unknown' ] ]

其他回答

你可以使用Object.keys()和map()来做到这一点

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((key) => [Number(key), obj[key]]); 控制台.log(结果);

使用对象。key和array# map方法。

Var obj = { “1”:5 “2”:7, “3”:0, “4”:0, “5”:0, “6”:0, “7”:0, “8”:0, “9”:0, “10”:0, “十一”:0, “12”:0 }; //获取所有对象属性名 var res = Object.keys(obj) //遍历它们并生成数组 . map(函数(k) { //生成数组元素 返回[+k, obj[k]]; }); console.log (res);

const persons = { 
    john: { age: 23, year:2010},
    jack: { age: 22, year:2011},
    jenny: { age: 21, year:2012}
}
const resultArray = Object.keys(persons).map(index => {
    let person = persons[index];
    return person;
});

//use this for not indexed object to change array

你可以使用_.castArray(obj)。

例子: _。castArray({'a': 1}); // => [{'a': 1}]

在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);

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); 游戏机。log (res);