Вопрос:
Учитывая массив в JavaScript, я хотел бы выбрать только те элементы, которые являются четными. Например
array = [1,2,3,4,5,6,7,8,9,10]
Он вернется
[2,4,6,8,10]
Вот мой код
array = [1,2,3,4,5,6,7,8,9,10] for (i = 0; i < array.length; i++) { newArray = []; if (i[0] % 2 == 0 { newArray.push(i) return newArray;}} => Illegal return statement
Я понятия не имею, что я делаю неправильно, но любая помощь будет оценена по достоинству. Спасибо.
Лучший ответ:
Ваш код скорректирован, вы приближались. Надеюсь, вы увидите, где вы ошибетесь.
Javascript
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], newArray = [], i; for (i = 0; i < array.length; i++) { if (array[i] % 2 === 0) { newArray.push(array[i]); } } console.log(newArray);
На jsFiddle
Ответ №1
Лучше вы используете собственный метод filter. Он будет фильтровать те элементы, которые будут соответствовать критериям, указанным в обратном вызове.
var evens = array.filter(function(element){ return element%2==0 }); Ответ №2
Не так кратки, как предыдущий ответ, но также можно использовать
var array = [1,2,3,4,5,6,7,8,9,10]; var evens = arr.reduce(function(prev, cur) { return (cur%2 === 0) ? prev.concat(cur) : prev; }, []);