Как вывести нечетные числа в javascript
Перейти к содержимому

Как вывести нечетные числа в javascript

  • автор:

Метод 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, просто, интересно и правильное решение!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *