【发布时间】:2020-03-11 14:09:37
【问题描述】:
像下图那样混合多个数组的最佳方法是什么,
PS:
不知道每个数组的长度是多少
数组将包含 +10000 个元素
会有3个以上的数组
我为它制定了解决方案,但我正在寻找更好的解决方案
这是我自己的解决方案,我正在寻找更好的想法
import { compact, flattenDeep } from "lodash/array";
export const doTheMagic = master => {
const longest = master.reduce((p, c, i, a) => (a[p].length > c.length ? p : i), 0);
const mixed = master[longest].map((i, k) => {
return master.map((o, a) => {
if (master[a][k]) return master[a][k];
});
});
const flaten = flattenDeep(mixed);
return compact(flaten);// to remove falsey values
};
const one = [1,2,3];
const two = ['a','b','c','d','e'];
const three = ['k','l','m','n'];
const mix = doTheMagic([one,two,three]);
console.log('mix: ', mix);
【问题讨论】:
-
所以数组是随机排列的?
-
不是字面上随机的我希望主数组具有每个数组的第一个元素,然后是第二个,然后是第三个,等等
-
您应该与我们分享您的解决方案
-
仅供参考:代码照片没用,请展示您的解决方案
-
@geeksamu 在您的问题中发布您的尝试,而不是作为答案...
标签: javascript algorithm