Как удалить элементы массива по условию?

Есть функция, которая возвращает массив чисел кратных 5:

const multiple = (n, maxNum) => {
  let listOfYers = [];
  for (let i = 0; i < maxNum; i++) {
    if (i % n === 0) {
      listOfYers.push(i);
    }
  }
  return listOfYers;
};
let arrayYears = multiple(5, 1000);

По условию числа кратные 100 нужно удалить, кроме тех, которые кратные 500. То есть, 100, 200, 300, 400, 600, 700, 800, 900 нужно удалить с массива

Написал такую ф-ю:

const multipleOfHundred = arrayYears.filter((i) => {
  if (i % 100 === 0 && !(i % 500 === 0)) {
    console.log(i);
  }
});

Условие работает правильно, осталось только удалить эти элементы с массива Как это можно сделать? Буду благодарен за помощь)


Ответы (3 шт):

Автор решения: John
Я правильно наверное понял

let nums = [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000]
let findNumber = nums.filter(num => !(num % 500))
console.log(findNumber)

→ Ссылка
Автор решения: Sergey Glazirin

Первый вариант - фильтруем массив.

const multiple = (n, maxNum) => {
  let listOfYers = [];
  for (let i = 0; i < maxNum; i++) {
    if (i % n === 0) {
      listOfYers.push(i);
    }
  }
  return listOfYers;
};
const arrayYears = multiple(5, 1000);

// записываем условие для фильтра в виде функции
const filterExpresion = (year) => !(year % 100 === 0 && !(year % 500 === 0));

// фильтруем
const filteredArray = arrayYears.filter(filterExpresion);

console.log(filteredArray);

Второй вариант - сразу же фильтруем массив в момент создания

const multiple = (n, maxNum) => {
  let listOfYers = [];
  for (let i = 0; i < maxNum; i++) {
    // добавляем фильтр в момент создания массива
    if (i % n === 0 && !(i % 100 === 0 && !(i % 500 === 0))) {
      listOfYers.push(i);
    }
  }
  return listOfYers;
};
const arrayYears = multiple(5, 1000);

console.log(arrayYears);

→ Ссылка
Автор решения: Igor Lebedev

Для краткости записи можно так, если планируется просто вычистить массив от лишнего (это пример, функцию "e" подставить свою):

let MyArray = [1,2,3,4,5]

MyArray = [].concat(MyArray.filter(e => e > 2))

console.log(MyArray)

→ Ссылка