1.0.0 • Published 4 years ago

lodash.permutations v1.0.0

Weekly downloads
10
License
MIT
Repository
github
Last release
4 years ago

lodash.permutations

_.permutations(collection, n)

Calculates all possible permutations of a certain size.

argumentdescription
collectionA collection of distinct values to calculate the permutations from.
nThe number of values to combine.

Returns a new array.

setup

npm

npm i lodash.permutations

ES module

import 'lodash.permutations';
import _ from 'lodash';

Node

require('lodash.permutations');
let _ = require('lodash');

browser

<script src="https://unpkg.com/lodash"></script>
<script src="https://unpkg.com/lodash.permutations"></script>

usage

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.

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.

let permutations = _('abc').permutations(3).map(v => _.join(v, '')).value();
// => ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']

see also