как создать массивы делителей для массива чисел?

Сделайте функцию, которая параметром будет принимать массив с числами и заменять каждое число на массив его делителей

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 за решение с размещением массива в массиве. Модифицировал, чтобы напрямую при запросе функции получать результат)

→ Ссылка