将数组拆分为固定n个动态大小块并获取所有组合的实现问题
数组拆分为指定数量块的全组合实现问题
我现在碰到一个数组处理的问题:给定一个数组(比如var a = [1,2,3]),需要把它拆分成恰好n个块,并且要获取所有可能的拆分组合。举个例子,当n=2的时候,应该返回所有符合要求的组合:
- [1] 和 [2,3],或者反过来 [2,3] 和 [1]
- [2] 和 [1,3],或者反过来 [1,3] 和 [2]
- [3] 和 [1,2],或者反过来 [1,2] 和 [3]
我自己试着写了一段代码,但运行下来没法获取到全部的组合,代码如下(没写完的部分是我卡住的地方):
function go(array, n) { function iter(left, right) { var i, l = left.length - n + right.length + 1; if (right.length + 1 == // 这里逻辑没写完,不知道怎么继续了 } }
内容的提问来源于stack exchange,提问作者sam
相关产品推荐
相关产品推荐

