Как создать функцию, которая возвращает только четные числа в массиве? - PullRequest
0 голосов
/ 13 февраля 2020

Напишите функцию, которая принимает один аргумент, который является массивом чисел, и возвращает массив, который содержит только числа из входного массива, которые являются четными.

Ответы [ 4 ]

4 голосов
/ 13 февраля 2020

Вы можете использовать .filter() с условием, чтобы проверить, является ли номер четным или нет. Это даст вам все четные элементы из массива

Из документации:

Метод filter () создает новый массив со всеми элементами, которые проходят тест, реализованный

var inputs = [1, 2, 3, 4, 5, 6]
var result = inputs.filter(x => x % 2 == 0)
console.log(result);

Если вам нужна функция, которая принимает массив в качестве входного параметра и возвращает массив, содержащий все четные элементы, попробуйте ниже

const getEvenNumbers = (inputs) => inputs.filter( x => x % 2 === 0 );

console.log(getEvenNumbers([1, 2, 3, 4, 5, 6]))
0 голосов
/ 13 февраля 2020

Пошаговое руководство:

  1. Мы создаем 3 массива, 1 из которых содержит только четные числа, один содержит только нечетные числа, один содержит оба
  2. Мы создаем функцию returnEvenNumbersFromArray (array)
  3. Мы создаем пустой массив finishArray для хранения четных чисел, возвращаемых в случае завершения функции
  4. Мы выполняем итерацию по массиву, который был передается функции, проверяя, является ли она четной

Выполнение num % 2 возвращает 0 (false), если число не четное, и 1 (true), если оно четное.

Каждое четное число вставляется в наш finishArray Мы возвращаем finishArray

evenNumbers = [2,4,6,8,10,12,16]
unevenNumbers = [1,3,5,7,9,11,15]
mixedNumbers = [0, 1, 6, 7, 3, 14]
function returnEvenNumbersFromArray(array) {
	finishedArray = []
	array.forEach(function(num) {
  	if(!(num % 2)) {
    	finishedArray.push(num)
    }
  })
  return finishedArray;
}
console.log(returnEvenNumbersFromArray(evenNumbers)) 
console.log(returnEvenNumbersFromArray(unevenNumbers)) 
console.log(returnEvenNumbersFromArray(mixedNumbers)) 
0 голосов
/ 13 февраля 2020

Используйте Array.prototype.filter () или Array.prototype.reduce () методы массива.

Использование фильтра:

const onlyEven = arr => arr.filter(v => v % 2 === 0)

const data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

console.log(onlyEven(data))

Использование уменьшения:

const onlyEven = arr => arr.reduce((a, v) => (v % 2 === 0 ? [...a, v] : a), [])

const data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

console.log(onlyEven(data))
0 голосов
/ 13 февраля 2020

Попробуйте это:

var array = [-200, -163, -26, -4, 0, 7, 76];

var evens = array.filter((x) => {
   return x % 2 === 0;
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...