Нужно сохранить все возможные комбинации с переменными, например:
Есть a, b , c
Должно получиться так
комбо 1: a arr[0] = [a]
комбо 2: b arr[1] = [b]
комбо 3: c arr[2] = [c]
комбо 4: a b arr[3] = [a, b]
комбо 5: a c arr[4] = [a, c]
комбо 6: b c arr[5] = [b, c]
комбо 7: a b c arr[6] = [a, b, c]
function nearest(arr) {
var len = arr.length
, i
, bit
, n = Math.pow(2, len)
, result = []
;
for( i = 1; i < n; i++) {
for( bit = 0; bit < len; bit++) {
if( i & (1 << bit)) {
result.push(arr[bit]);
}
}
}
Туго что-то мне даётся понимание работы данного кода)
Сейчас данный цикл просто записывает подряд все возможные комбинации. Что-то не соображу как сделать, чтобы они разбивались на уникальные под массивы?)
arr[0] [a]
arr[1] [b]
arr[2] [c]
arr[3] [a, b]
arr[4] [a, c]
arr[5] [b, c]
arr[6] [a, b, c]