Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@packageforge/permute

snesin140.0.3TypeScript support: included

Function to permute collections. * permuteCombination Iterate over combinations of elements in multiple arrays. * permuteSample Iterate over samples of an array in every combination. * permuteOrder Iterate over every order of elements in an array. *

readme

@packageforge/permute

Function to permute collections.

  • permuteCombination Iterate over combinations of elements in multiple arrays.
  • permuteSample Iterate over samples of an array in every combination.
  • permuteOrder Iterate over every order of elements in an array.
  • permuteRange Iterate over a numeric range and return an array of the range.

permuteCombination

Iterate over combinations of elements in two or more arrays.
  • Return false from the callback to exit the iteration. `typescript import { permuteCombination } from '@packageforge/permute';

permuteCombination(["Lear", "Fool"], [true, false], (name, state) => { console.log(name, state); });

Output:

Lear, true Lear, false Fool, true Fool, false


## `permuteSample`
###### Iterate over samples of an array in every combination.
* Return `false` from the callback to exit the iteration.
```typescript
import { permuteSample } from '@packageforge/permute';

permuteSample(["Lear", "Cordelia", "Goneril", "Regan", "Fool"], 2, names => {
  console.log(names.join(', '));
});

Output:

Lear, Cordelia
Lear, Goneril
Lear, Regan
Lear, Fool
Cordelia, Goneril
Cordelia, Regan
Cordelia, Fool
Goneril, Regan
Goneril, Fool
Regan, Fool

permuteOrder

Iterate over every order of elements in an array.
  • Return false from the callback to exit the iteration. `typescript import { permuteOrder } from '@packageforge/permute';

permuteOrder(["Cordelia", "Goneril", "Regan"], names => { console.log(names.join(', ')); });

Output:

Cordelia, Goneril, Regan Cordelia, Regan, Goneril Goneril, Cordelia, Regan Goneril, Regan, Cordelia Regan, Cordelia, Goneril Regan, Goneril, Cordelia


## `permuteRange`
###### Iterate over a numeric range and return an array of the range.
* The callback parameter is optional.
* Return `false` from the callback to exit the iteration and truncate the returned range without the value (exclusive).
* Return `true` from the callback to exit the iteration and truncate the returned range with the value (inclusive).
```typescript
import { permuteRange } from '@packageforge/permute';

const rangeOne = permuteRange(3, index => {
  console.log(index);
});
console.log("rangeOne", rangeOne);

const rangeTwo = permuteRange(3, 3, index => {
  console.log(index);
});
console.log("rangeTwo", rangeTwo);

Output:

0
1
2
rangeOne, 0,1,2
3
4
5
rangeTwo, 3,4,5