JavaScript 有没有现成的穷举函数呢?

2016 年 7 月 4 日
 isbase
提供需要穷举的内容之后输出所有结果
3621 次点击
所在节点    JavaScript
15 条回复
just4test
2016 年 7 月 4 日
没用过 js ,不过貌似 array 有 map 方法?
没太明白你想干什么。
isbase
2016 年 7 月 4 日
@just4test
比如 输入 26 个字母 10 个数字 输出这些字母和数字的所有组合
learnshare
2016 年 7 月 4 日
@isbase 自己写咯
ljbha007
2016 年 7 月 4 日
1,2,3,4].forEach(function(i){console.log(i)})
ljbha007
2016 年 7 月 4 日
[1,2,3,4].forEach(function(i){console.log(i)})
ljbha007
2016 年 7 月 4 日
用 underscore 也可以

_.map([1,2,3,4], function(i){console.log(i)})
bramblex
2016 年 7 月 4 日
就一行代码的事而已,哪里那么复杂……
var a = [1,2,3,4];
var b = ['a','b','c','d'];
var c = a.map((a_i) => b.map((b_i) => ([a_i, b_i]))).reduce((l, r) => r.concat(l));
Perry
2016 年 7 月 4 日
@isbase 你所说的组合是任意长度的吗?还是 36 ?
bramblex
2016 年 7 月 4 日
javaScript 不提供 concatMap 真蛋疼……
IanPeverell
2016 年 7 月 4 日
ES6 还有 Map, WeakMap, Iterator, for...of...
lonelinsky
2016 年 7 月 4 日
@isbase lz 要的是全排列函数还是只是要输出 1a , 2a...1b, 2b 这样的东西?
如果是全排列,原生 js 应该是没有这样的排列函数的,不过网上算法很多,另外提个建议,算法写出来后不要企图将结果写入一个文件(针对 26 字母+10 数字)…

如果是后面的,随便写个 for 循环就好了吧 =。=
Mutoo
2016 年 7 月 4 日
楼主需要的是排列组合的库 js-combinatorics
https://github.com/dankogai/js-combinatorics
SourceMan
2016 年 7 月 4 日
别人封装好的库算不算现成的?
noe132
2016 年 7 月 4 日
Array 有 reduce 方法啊
mingyun
2016 年 7 月 4 日
@Mutoo

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/290072

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX