返回数组组合数组的函数

2024-02-05

我正在尝试做一个_.combinations带有三个参数的函数(下划线 mixin)arr, pockets, duplicates。这是我设计的一个测试,旨在展示行为应该如何。

expect(_.combinations([1, 2], 1, false)).to.be.equal([[1],[2]])
expect(_.combinations([1, 2], 1, true)).to.be.equal([[1],[2]])
expect(_.combinations([1, 2, 3], 2, false)).to.be.equal([[1,2],[1,3],[2,3]])
expect(_.combinations([1, 2, 3], 2, true)).to.be.equal([[1,2],[1,3],[2,3],[2,1],[3,1],[3,2]])
expect(_.combinations([1, 2, 3, 4], 3, false)).to.be.equal([[1,2,3],[1,2,4],[1,3,4],[2,1,4],[2,3,4],[3,4,1]])
expect(_.combinations([1, 2, 3, 4], 3, true)).to.be.equal([[1,2,3],[1,2,4],[1,3,4],[2,1,4],[2,3,1],[2,3,4],[3,1,2],[3,4,1],[3,4,2],[4,1,2],[4,1,3],[4,2,3]])

在创建这个函数之前,我想知道它是否已经存在于库中。也许这个特定的函数已经有一个我不熟悉的名字了。

有什么东西可以做到这一点吗?


This https://raw.githubusercontent.com/dankogai/js-combinatorics/master/combinatorics.js图书馆功能良好。我认为它几乎满足了您的需求。

var combinatorics=require('/path/to/combinatorics');

var a = [1,2,3];

var ans1=combinatorics.permutation(a,2); 
console.log(ans1.toArray());// [[1,2],[2,1],[1,3],[3,1],[2,3],[3,2]] like when duplicates is set to true


var ans2=combinatorics.combination(a,2); 
console.log(ans2.toArray());//[[1,2],[2,1],[1,3],[3,1],[2,3],[3,2]] like when duplicates is set to false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

返回数组组合数组的函数 的相关文章

随机推荐