как создать массивы делителей для массива чисел?
Сделайте функцию, которая параметром будет принимать массив с числами и заменять каждое число на массив его делителей
function arrDividers(arr) {
let n = arr.join(",");
let array = [];
for (let j = 0; j < arr.length; j++) {
arr[j] = [];
for (let i = 2, limit = n >> 1; i <= limit; ++i) {
if (!(n % i)) array.push(i);
}
if (n !== 1) array.push(j);
return array;
}
}
console.log(arrDividers([11, 22]));
Создать массив делителей числа я смог, но не могу понять, как создать массивы делителей для массива чисел)
Ответы (2 шт):
Автор решения: ksa
→ Ссылка
не могу понять, как создать массивы делителей для массива чисел)
Например вот таким образом можно такое реализовать...
const arr = [11, 22]
// вот с новым массивом
console.log('Вариант 1', arr.map(test))
// вот меняем сам массив
arr.forEach((v, i, a) => a[i] = test(v))
console.log('Вариант 2', arr)
// вот функция, которая вернет новый массив
const fn1 = arr => arr.map(test)
// вот функция, которая переделает исходный массив
const fn2 = arr => (arr.forEach((v, i, a) => a[i] = test(v)), arr)
//
function test(n) {
const a = []
for (let i = 1; i <= n; i++) {
if (n % i === 0) a.push(i)
}
return a
}
Автор решения: alexWithoutBeard
→ Ссылка
function devidersArr(m) {
let num = m;
function dividers(n) {
let array = [];
for (let i = 1; i <= n; i++) {
if (n % i === 0) array.push(i);
}
return array;
}
num.forEach((v, i, a) => (a[i] = dividers(v)));
return num;
}
console.log(devidersArr([11, 22]));
Огромное спасибо @ksa за решение с размещением массива в массиве. Модифицировал, чтобы напрямую при запросе функции получать результат)