我想像这样转换一个对象:
{"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中的键值对数组?
我想像这样转换一个对象:
{"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中的键值对数组?
当前回答
使用lodash,除了上面提供的答案外,还可以将键放在输出数组中。
输出数组中没有对象键
for:
const array = _.values(obj);
如果obj为以下内容:
{ “art”: { id: 1, title: “aaaa” }, “fiction”: { id: 22, title: “7777”} }
那么数组将是:
[ { id: 1, title: “aaaa” }, { id: 22, title: “7777” } ]
使用输出数组中的对象键
如果你写('genre'是你选择的字符串):
const array= _.map(obj, (val, id) => {
return { ...val, genre: key };
});
你会得到:
[
{ id: 1, title: “aaaa” , genre: “art”},
{ id: 22, title: “7777”, genre: “fiction” }
]
其他回答
如果你正在使用lodash,它可以像这样简单:
var arr = _.values(obj);
使用for in
var obj = { "10":5, "2":7, "3":0, "4":0, "5":0, "6":0, "7":0,
"8":0, "9":0, "10":0, "11":0, "12":0 };
var objectToArray = function(obj) {
var _arr = [];
for (var key in obj) {
_arr.push([key, obj[key]]);
}
return _arr;
}
console.log(objectToArray(obj));
另一个解决方案是Object。输入不适合你。
const obj = { '1': 29, '2': 42 }; const arr = Array.from(Object.keys(obj), k=>['${k}', obj[k]]); 控制台.log(到达);
下面是es6使用扩展操作符和Object.entries的“新”方法。
const data = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0};
const dataSpread = [...Object.entries(data)];
// data spread value is now:
[
[ '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 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 }
let objectKeys = Object.keys(obj);
let answer = objectKeys.map(value => {
return [value + ':' + obj[value]]
});