0.0.3 • Published 3 years ago

@packageforge/permute v0.0.3

Weekly downloads
3
License
-
Repository
-
Last release
3 years ago

@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.
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.
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.
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).
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
0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago