Похоже, вы хотите, чтобы каждое значение в массиве было заменено значением всех других элементов, умноженных вместе. Вы можете рассчитать это более эффективно, сначала умножив все числа вместе, а затем используя деление, чтобы забрать только одно число из продукта за один раз, оставив продукт всех остальных чисел в массиве.
Array.prototype.reduce
Array.prototype.map
function call(arr) {
var product = arr.reduce((a,b) => a * b, 1);
return arr.map(num => product/num);
}
console.log(call([1, 2, 3]));
Обратите внимание, что это не будет работать, если 0
появляется где-нибудь в массиве.
Просьба уточнить вашу конкретную проблему или добавить дополнительные сведения, чтобы точно указать, что вам нужно. Как это написано в настоящее время, трудно точно сказать, что вы просите. –
То, что вы ищете, можно описать как манипулирование перестановкой массива. Взгляните на http://stackoverflow.com/questions/9960908/permutations-in-javascript/37580979#37580979 для углубленного обсуждения. – Snowmonkey