Skip to content

firstandthird/combinations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
ApplianceJohn
May 16, 2023
12683c2 · May 16, 2023

History

16 Commits
Apr 5, 2017
Apr 5, 2017
Jun 6, 2016
Jun 6, 2016
May 16, 2023
Apr 7, 2020
Apr 5, 2017
Nov 4, 2019

Repository files navigation

Combinations Build Status

Installation

npm install combinations

Usage

combinations(array, [min_output_array_size], [max])
  • takes in an array, and outputs an array of arrays, containing all possible combinations of values in the original array.
  • combinations are of all sizes: all combinations of one element, and all combinations of 2 elements, and so on
  • minimum number of elements in a combination can be specified (min_output_array_size)
  • maximum number of elements in a combination can be also specified
  • if maximum combination value is bigger than array elements it will be overridden to the array length

Example

var combinations = require('combinations');
var myArray = ['red', 'orange', 'yellow', 'green'];

combinations(myArray); 

//Output:
//  [ [ 'red' ],                      [ 'orange' ],    
//    [ 'yellow' ],                   [ 'green' ],  
//    [ 'red', 'orange' ],            [ 'red', 'yellow' ],
//    [ 'red', 'green' ],             [ 'orange', 'yellow' ],
//    [ 'orange', 'green' ],          [ 'yellow', 'green' ],
//    [ 'red', 'orange', 'yellow' ],  [ 'red', 'orange', 'green' ],
//    [ 'red', 'yellow', 'green' ],   [ 'orange', 'yellow', 'green' ],
//    [ 'red', 'orange', 'yellow', 'green' ] ]

Example with a minimum array size

combinations(myArray, 2);

//Output:
//  [ [ 'red', 'orange' ],            [ 'red', 'yellow' ],
//    [ 'red', 'green' ],             [ 'orange', 'yellow' ],
//    [ 'orange', 'green' ],          [ 'yellow', 'green' ],
//    [ 'red', 'orange', 'yellow' ],  [ 'red', 'orange', 'green' ],
//    [ 'red', 'yellow', 'green' ],   [ 'orange', 'yellow', 'green' ],
//    [ 'red', 'orange', 'yellow', 'green' ] ]

Example with a minimum and maximum array size

combinations(myArray, 2, 3);

//Output:
//  [ [ 'red', 'orange' ],            [ 'red', 'yellow' ],
//    [ 'red', 'green' ],             [ 'orange', 'yellow' ],
//    [ 'orange', 'green' ],          [ 'yellow', 'green' ],
//    [ 'red', 'orange', 'yellow' ],  [ 'red', 'orange', 'green' ],
//    [ 'red', 'yellow', 'green' ],   [ 'orange', 'yellow', 'green' ] ]