javascript - 在 ES6 中将多维数组转换为平面对象数组的最佳实践

标签 javascript arrays multidimensional-array ecmascript-6

我有一个源多维数组。 看起来像:

var arr = [];
arr[1] = [];
arr[2] = [];
arr[3] = [];
arr[1][1] = "11";
arr[1][2] = "12";
arr[1][3] = "13";
arr[2][1] = "21";
arr[2][2] = "22";
arr[2][3] = "23";
arr[3][1] = "31";
arr[3][2] = "32";
arr[3][3] = "33";

我需要使用 ES6 功能将其转换为平面数组。 结果必须如下所示:

var res = [
  { col:1, row:1, val:"11"},
  { col:1, row:2, val:"12"},
  { col:1, row:3, val:"13"},
  { col:2, row:1, val:"21"},
  { col:2, row:2, val:"22"},
  { col:2, row:3, val:"23"},
  { col:3, row:1, val:"31"},
  { col:3, row:2, val:"32"},
  { col:3, row:3, val:"33"}
];

最佳答案

你可以使用 Array#reduceArray#forEach用于新对象。

var arr = [, [, '11', '12', '13'], [, '21', '22', '23'], [, '31', '32', '33']],
    result = arr.reduce((r, a, col) => (a.forEach((val, row) => r.push({ col, row, val })), r), []);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 在 ES6 中将多维数组转换为平面对象数组的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42554657/

相关文章:

javascript - 打开并创建新帖子按钮不起作用

javascript - Html 按钮单击事件未触发单选按钮

javascript - 从数组 Javascript 中删除具有自定义索引的元素

arrays - 在 Angular 2 中将 Json 数据从服务器存储到数组

php - 列出文件夹 ftp sort() 期望参数 1 为数组

java - Java 数组中每个元素有多个值

javascript - MongoDB $rename javascript 变量作为键名

javascript - 将 rel ="lightbox"添加到其中包含 .jpg 和 .gif 的链接

javascript - 如何匹配数字并创建二维数组?

javascript - JavaScript 多项选择题的最佳数据结构