js中有没有快速生产list array的方式?

雾秋
  • 1.4k

现有a、b,

a = [1,2];
b = ['a','b'];

如何快速生成
[[1,'a'], [1,'b'],[2,'a'],[2, 'b']]

两次for循环 感觉有点不太方便。 有没有简便的快速写法?

有个类似的问题 ---> 这里

回复
阅读 4.2k
5 个回答
请叫我禽兽
  • 1.5k
叶不修
  • 601
a = [1,2];
b = ['a','b'];
c = [];
a.forEach(aitem => b.forEach(bitem => c.push([aitem,bitem])));

这样可以吗

想到了一个场景 关键词组合
在数组是可变量延伸成多维并顺序可颠倒、同求个思路、感谢

暧月的猫
  • 2
新手上路,请多包涵

没有现成的使用lodash的函数库你可以轻松实现功能
import { flatMap, map } from 'lodash';

flatMap([1, 2], i => map(['a', 'b'], j => [i, j]))

可以自己写一个通用函数

const nest = (xs, ys, predicate) => flatMap(xs, x => map(ys, y => predicate(x, y)))

这样使用nest([1, 2], ['a', 'b'], (x, y) => [x, j])

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏