javascript - 在多个数组中组合“列”
问题描述
我有一个数组数组:
var arr = [
[0, 3, 3],
[0, 4, 3],
[1, 3, 4],
[1, 4, 4]
];
我想创建一个新数组,它结合了内部数组的每个索引的内容。例如,每个内部数组的索引 0 处的第一个元素是 0、0、1 和 1。我想创建一个组合这些元素的新数组,以便最终得到 [0, 1](我不'不想在新数组中重复)。下一个“列”是 3、4、3 和 4。所以我想要一个 [3, 4] 的数组。
我想要的最终结果是
[
[0, 1],
[3, 4],
[3, 4]
]
我无法完全弄清楚如何做到这一点。
解决方案
这里是另一个解决方案。
const result = (arr) => {
let index = 0;
const min = Math.min(...arr.map(r => r.length)) // get min length
const grid = [];
while (index < min) { // loop with min
let s = new Set(); // using set to keep unique values
arr.forEach(r => s.add(r[index])); // pick value
grid.push([...s]); // get array from set
index++;
}
return grid
}
const array = [ [0, 3, 3], [0, 4, 3], [1, 3, 4], [1, 4, 4] ];
console.log(result(array))
推荐阅读
- r - 用R中的算法构建一个函数
- android-animation - Jetpack Compose Animation - 脉冲和停止(在动画开始或结束时)
- ssl - 詹金斯 ssl 问题
- mysql - 如何将 MYSQL 查询转换为 Mongodb 聚合
- python - 如何在 Python 中提取 Azure JSON blob 文件内容
- javascript - JavaScript 修改了原始 JSON 中的一些值
- c# - Azure 资源管理器 SQL Server 在尝试创建防火墙规则之前未完成创建
- c++ - 做
允许具有运行时可变比率的持续时间? - google-sheets - Google Sheet Arrayformula Lookup/Filter Multi Criteria
- swift - Swift UI 上的 Duration 参数 withAnimation(.linear)