我正在传递一个名为obj的键/值对象,需要转换为数组中的数组列表(arr [[key:value] [key:value]])
function convertObjectToList(obj) {
var arr = [];
var i = 0;
for(var key in obj){
arr[0][i][0] = key;
arr[0][i][1] = obj[key];
i++;
}
return arr;
}
答案 0 :(得分:-1)
您可以将Array#map
与Object.keys
一起使用,并为每个属性返回一个新对象。
function convertObjectToList(object) {
return Object.keys(object).map(function (k) {
var temp = {};
temp[k] = object[k];
return temp;
});
}
ES6
function convertObjectToList(object) {
return Object.keys(object).map(k => ({ [k]: object[k] }));
}
答案 1 :(得分:-2)
在创建数组元素之前,不能分配数组元素的索引。由于没有arr[0]
,您无法分配到arr[0][i]
。解决方案是使用内部数组来初始化数组。
对于第三级,您只需使用数组文字,不需要分配索引。您可以使用.push()
向数组添加元素,而不是递增i
。
function convertObjectToList(obj) {
var arr = [[]];
for(var key in obj){
arr[0].push([key, obj[key]]);
}
return arr;
}