Метод filter для фильтрации массива в JavaScript
Дан массив с числами. Оставьте в нем только положительные числа.
Дан массив с числами. Оставьте в нем только отрицательные числа.
Дан массив с числами. Оставьте в нем только числа, которые больше нуля, но меньше 10 .
Дан массив со строками. Оставьте в нем только те строки, длина которых больше 5 -ти символов.
Дан массив с числами. Оставьте в нем только те числа, произведение которых на их порядковый номер меньше 30 .
Дан массив, в нем могут быть обычные элементы и подмассивы, например [1, 2 , [3, 4], 5 , [6, 7]]. Оставьте в нем только обычные элементы.
Вывести все нечетные числа из строки
Необходимо вывести все нечетные числа из строки.
Пример кода, который при запуске зависает:
function gol () < var numb = prompt('enter the numbers'); var arr = numb.split(' '); arr.push(0); var ar = []; for(i = 0; i != arr || i == arr; i++)< var a = arr / 2; a = a.toString(); if(a.search(',') === true)< ar.push(a); >> > console.log(gol());
Отслеживать
12.3k 1 1 золотой знак 21 21 серебряный знак 40 40 бронзовых знаков
задан 24 июн 2019 в 12:14
39 1 1 серебряный знак 8 8 бронзовых знаков
Ну это не особо осмысленный набор символов
24 июн 2019 в 12:18
Что по вашему мнению происходит тут: i != arr || i == arr ?
24 июн 2019 в 12:18
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
вывести все нечетные числа из строки.
let input = '12 10 7 13 6 5 4 11'; // Строка ввода, у вас prompt let numbers = input.split(' '); // Делим по пробелам на числа console.log(getOdds(numbers).join(', ')); console.log(getOddsArrFunc(numbers).join(', ')); console.log(getOddsLoopIf(numbers).join(', ')); // Возможные реализации: // Array.prototype.filter function getOdds(nums) < return nums.filter(function(num) < return num % 2 === 1; >); > // То же, со стрелочной функцией function getOddsArrFunc(nums) < return nums.filter(num =>num % 2 === 1); > // Вручную в цикле function getOddsLoopIf(nums) < const res = []; for (let i = 0; i < nums.length; ++i) < if (nums[i] % 2 !== 0) res.push(nums[i]); >return res; >
33. Циклы: инструкция while в JavaScript
Уже из слова «цикл» понятно, что делает эта инструкция. Инструкция while зацикливает (повторяет многократно) один и тот же участок кода. В языке JavaScript есть четыре вида циклов: while , do/while , for , for/in .
while (выражение) инструкция
>
Инструкция while вначале вычисляет выражение. Если выражение ложное, то инструкция while пропускается, иначе инструкция while выполняет тело цикла (все то, что находится в фигурных скобках), после выполнения выражение опять проверяется и так по кругу, пока выражение не станет ложным. Суть цикла в том, что значения внутри цикла должны изменяться, иначе цикл будет бесконечным. Пример счета от 0 до 5.
var num = 0; // Обязательно обнуляем счетчик
while (num < 6) document.write('Число ' + num + '
');
num++; // Увеличиваем счетчик, иначе цикл будет бесконечным
>
Вначале переменную num нужно инициализировать и обнулить. Затем внутри цикла увеличиваем ее значение, дабы не попасть в бесконечный цикл. И когда переменная num будет равна 6 , то выражение станет ложным и цикл while будет пропущен.
Например, вы можете внутрь цикла while , написать инструкцию if или наоборот. Далее пример программы, которая выводит все четные числа на отрезке от 0 до 20:
var num = 1;
while (num < 20) if (num % 2 === 0) document.write(num + '
');
>
num++;
>
В данном примере if проверяет: если число делится на два без остатка, то оно четное
Например, вам нужно найти первые 20 нечетных чисел на отрезке от 199 до скольки получится:
var num = 0; // Счетчик выведенных
var figure = 199; // Начальное число
while (num < 20) if (figure % 2 !== 0) document.write(figure + '
');
num++;
>
figure++;
>
Курсы javascript
doubled.push(arr[i] %2===0 ? arr[i] * 2 : arr[i]); хотел уточнить, а вот так не правильно,вроде так проходит?
23.05.2020, 23:03
Регистрация: 14.01.2015
Сообщений: 12,990
Правильно, но «букв» больше. Четность числа можно проверить и логически, проверяя младший разряд его бинарного значения и тоже будет работать.
24.05.2020, 15:55
Интересующийся
Регистрация: 30.04.2020
Сообщений: 17
function doubleEveryEven (arr)< return arr.map(n=>n+n*(!(n%2))) >
24.05.2020, 16:38
Регистрация: 27.05.2010
Сообщений: 33,057
function doubleEveryEven (arr)< return arr.map(n=>n * (2 - (n & 1))) > console.log(doubleEveryEven([11,0,9,3,10,4]))
24.05.2020, 22:34
Регистрация: 20.12.2009
Сообщений: 1,714
Не будет, например, 4.3 будет считаться чётным числом, очевидно нужно также было упомянуть про ограничение типом BigInt, только тогда твоя проверка будет правильна!
рони, в сообщении №9 возможны ложноположительные срабатывания, правильные решения — № 2 и 5.
Error, просто, интересно и правильное решение!