将对象转换为数组列表

时间:2017-06-27 21:00:56

标签: javascript

我正在传递一个名为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;
}

2 个答案:

答案 0 :(得分:-1)

您可以将Array#mapObject.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;
}