как проверить каждый элемент в массиве для определенного условия - PullRequest
0 голосов
/ 13 октября 2018

У меня есть шесть целых чисел, хранящихся в массиве:

[2,3,4,5,6,7]

Я хотел бы использовать каждый элемент в массиве для проверки диапазона других целых чисел 100 - 999 (т.е.все трехзначные числа), чтобы найти число, которое имеет остаток 1 при делении на все элементы в массиве по отдельности .

Яне уверен, какой метод JavaScript использовать для этого.Я пробую цикл for:

function hasRemainder() {
  let arr = [2,3,4,5,6,7];
  for (i = 100; i < 999; i++) {
    if (i % arr[0] == 1) {
    return i;
    }
  }
}

, но у меня есть несколько проблем, которые мне нужно решить.

  • Вместо того, чтобы ссылаться на определенный элемент, например arr[0],Мне нужно найти способ перебрать все элементы в массиве.
  • В настоящее время эта функция возвращает только одно число (цикл останавливается на первом числе с остатком), но мне нужны все возможные значенияв заданном диапазоне.

Если бы кто-то мог помочь с этими двумя проблемами, я был бы очень признателен.Спасибо.

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Это также работает;

function hasRemainder() {
  const arr = [2, 3, 4, 5, 6, 7];
  const remainders = []
  for (i = 100; i < 999; i++) {
     const isRemainder = arr.every(numb => i % numb === 1)
     if (isRemainder) {
        remainders.push(i)
     }
    }
    return remainders
  }
0 голосов
/ 13 октября 2018

Вы можете отобразить массив значений, а затем отфильтровать массив, проверив каждое оставшееся значение одним.

function hasRemainder() {
    var array = [2, 3, 4, 5, 6, 7];
    return Array
        .from({ length: 900 }, (_, i) => i + 100)
        .filter(a => array.every(b => a % b === 1));
}

console.log(hasRemainder())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...