如何解决对于这种数组操作,是否有一种有效的方法 JS?
[
[val-1-1,val-1-2],[val-2-1,val-2-2],[val-3-1,val-3-2],...
[val-n-1,val-n-2]
]
数组可能很长,我想要实现的是将这个数据结构“拆分”为两个数组,如下所示:
[val-1-1,val-2-1,val-3-1,... val-n-1]
和 [val-1-2,val-2-2,val-3-2,... val-n-2]
。
我正在寻找一种有效的方法来执行此操作。我知道通过循环和使用索引这在技术上很容易,但我想知道是否有一种有效的方法可用于此任务,因为初始数组很长而且我还有多个这些初始数组数组,因此循环可能需要不必要的长时间。
解决方法
对于每一列,只需检查结果中是否有该列的数组,如果已经有数组,则只需推送元素,否则创建一个新数组然后推送。
const transpose = (arr) =>
arr.reduce(
(m,r) => (r.forEach((v,i) => ((m[i] ??= []),m[i].push(v))),m),[]
),matrix = [
[1,2,3],[1,];
console.log(transpose(matrix));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。