lodash.permutations
_.permutations(collection, n)
Calculates all possible permutations without repetition of a certain size.
argument | description |
---|---|
:--- | :--- |
collection | A collection of distinct values to calculate the permutations from. |
n | The number of values to combine. |
Returns a new array.
setup
npm
- ``` sh
- npm i lodash.permutations
- ```
ES module
- ``` js
- import 'lodash.permutations';
- import _ from 'lodash';
- ```
Node
- ``` js
- require('lodash.permutations');
- let _ = require('lodash');
- ```
browser
- ``` html
- <script src="https://unpkg.com/lodash"></script>
- <script src="https://unpkg.com/lodash.permutations"></script>
- ```
usage
- ``` js
- let permutations = _.permutations([true, {a: 1}, null], 2);
- // => [[true, {a: 1}], [true, null], [{a: 1}, true], [{a: 1}, null], [null, true], [null, {a: 1}]]
- ```
Calculate all possible permutations of all possible sizes.
- ``` js
- let permutations = _.flatMap([2, 4, 6], (v, i, a) => _.permutations(a, i + 1));
- // => [[2], [4], [6], [2, 4], [2, 6], [4, 2], [4, 6], [6, 2], [6, 4], [2, 4, 6], [2, 6, 4], [4, 2, 6], [4, 6, 2], [6, 2, 4], [6, 4, 2]]
- ```
Also accepts array-like values.
- ``` js
- let permutations = _('abc').permutations(3).map(v => _.join(v, '')).value();
- // => ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']
- ```
see also
lodash.combinations
lodash.multicombinations
lodash.multipermutations
lodash.product