keymbinatorial
v2.0.0
Published
Module that generates the unique combinations of key values by taking a single value from each keys array
Downloads
193
Readme
Keymbinatorial
Generates a unique combinations of key values by taking a single value from each keys array
Usage
npm install keymbinatorial
var keymbinatorial = require('keymbinatorial');
let objectToCombine = {
a: ['a', 'b', 'c'],
c: [1, 2],
e: [{ a: '1'}, {b: '2'}]
};
// combinations will be an array of unique combinations based on each key and the values in the array
let combinations = keymbinatorial(objectToCombine);
console.log(combinations);
/*
will output:
[
{ a: 'a', c: 1, e: { a: '1' } },
{ a: 'a', c: 1, e: { b: '2' } },
{ a: 'a', c: 2, e: { a: '1' } },
{ a: 'a', c: 2, e: { b: '2' } },
{ a: 'b', c: 1, e: { a: '1' } },
{ a: 'b', c: 1, e: { b: '2' } },
{ a: 'b', c: 2, e: { a: '1' } },
{ a: 'b', c: 2, e: { b: '2' } },
{ a: 'c', c: 1, e: { a: '1' } },
{ a: 'c', c: 1, e: { b: '2' } },
{ a: 'c', c: 2, e: { a: '1' } },
{ a: 'c', c: 2, e: { b: '2' } }
]
*/
The keymbinatorial
function takes in an Nx1 object, where N is a set of keys that map to
an array.
For each key in the object, the function builds up a list of objects containing a unique combination of keys to values in the array.
Testing
npm test
License
Code licensed under the BSD 3-Clause license. See LICENSE file for terms.