Stack Overflow на русском Asked by Vardy9 on December 20, 2020
Задание: Напишите функцию countOfNumbers, которая принимает массив arr как аргумент и возвращает количество элементов, которые являются числами. Массив arr может состоять из чисел, строк и булевых (логичесих) величин.
Примеры:
функция countOfNumbers([2, ‘a’, 5, true, ‘b’, 1, ‘c’]) должна возвратить 3 (3 числа: 2, 5, 1);
функция countOfNumbers([true, false, ‘abc’]) должна возвратить 0;
function countOfNumbers(arr){
let count = 0;
if (!arr.length) {
return 0;
}
for (let i = 0; i < arr.length; i++) {
if (arr[i] === Number) {
count = count + 1;
}
}
return count;
}
Проблема: Не понимаю, как прописать в функции, что мне нужни только числа.
Наверняка есть нюансы, но работает в большинстве случаев:
function countOfNumbers(arr) {
return arr.filter(item => Number.isFinite(item)).length;
}
alert(countOfNumbers(['7', 2.5, 'a', 0, true, 'b', 1, 'c', Infinity, NaN, -Infinity, null]))
Answered by UModeL on December 20, 2020
function countOfNumbers(arr){
let count = 0;
for (let i = 0; i < arr.length; i++) {
// console.log(arr[i])
if ( Number.isInteger(arr[i])||parseFloat(arr[i])) {
count ++
}
}
return count;
}
alert(countOfNumbers([2.5 ,'a', 5.6, true, 'b', 1, 'c']) )
Answered by Илья on December 20, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP