Я пытаюсь сгенерировать все возможные комбинации имени из моего массива productsDeduped
, а затем сохранить сгенерированную комбинацию как массив productTags
. Вот мой код:
//function to generate all possible combinations
function getCombinations(array) {
var i,
result = [];
for (i = 0; i < array.length; i++) {
result.push(
array[i],
...getCombinations(array.filter((_, j) => i !== j)).map(v => array[i] + " " + v)
);
}
return result;
}
for (var i = 0; i < arrLength; i++) {
var productNameStrings = getCombinations(productsDeduped[i].tags);
productsDeduped[i].productTags = productNameStrings
}
Я получаю эту ошибку:
result.push(
^
RangeError: Maximum call stack size exceeded
at getCombinations (/Users/farhadam/Silobee/Inventory/categories/execute.js:1006:16)
at Object.<anonymous> (/Users/farhadam/Silobee/Inventory/categories/execute.js:1016:30)
at Module._compile (internal/modules/cjs/loader.js:1156:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
at Module.load (internal/modules/cjs/loader.js:1000:32)
at Function.Module._load (internal/modules/cjs/loader.js:899:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
Любая идея, как я могу это исправить; Я предполагаю, что это из-за большого объема запроса?
EDIT: Я только что посмотрел глубже, и когда я ограничиваю свой массив строк productNameStrings
только 9 элементами, код работает без проблем; но если в массиве 10 или более строк, он начинает выдавать мне эту ошибку! Все еще не знаю, как это исправить.