javascript - 将对象转换为多维数组

标签 javascript arrays json object multidimensional-array

我基本上想反过来做:Convert multidimensional array to object

假设我有一个这样的对象:

{
  "6": {"10":{'id':0,'name':'player1'}},
  "7": {"5":{'id':1,'name':'player2'}}
}

我怎样才能把它转换成这样的合法数组:

[
    null, 
    null, 
    null, 
    null, 
    null, 
    null, 
    [null, null, null, null, null, null, null, null, null, null, {'id':0,'name':'player1'}],
    [null, null, null, null, null, {'id':1,'name':'player2'}]
]

这是我成功地将其转换为另一种方式的代码:

function populateFromArray(array) {
  var output = {};
  array.forEach(function(item, index) {
    if (!item) return;
    if (Array.isArray(item)) {
      output[index] = populateFromArray(item);
    } else {
      output[index] = item;
    }
  });
  return output;
}

console.log(populateFromArray(input));

最佳答案

function objectToArray(obj) {
  var len = Math.max.apply(null, Object.keys(obj));
  if (len !== len) return obj; // checking if NaN

  var output = [];
  for (var i = 0; i <= len; i++) {
    output[i] = null;
    if (obj[i]) { 
      output[i] = objectToArray(obj[i]);
    }
  }
  return output;
}

关于javascript - 将对象转换为多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38568518/

相关文章:

java - 无法使用 GSON 将某些 JSON 解析为 JsonArray

javascript - 在Vuejs上打印组件背景颜色?

javascript - lambda 。从数组创建固定长度的子数组

javascript - 如何计算数组列表中的项目数

arrays - Julia:使用相同的内存连接两个矩阵

arrays - 我怎样才能操纵一个数组来产生最大的数字?

javascript - $.getJSON 很慢

javascript - 比较 2 个 JSON 对象

javascript - FullCalendar 中的工具提示

PHP从数组中提取值并将它们恢复到另一个数组中