function isNumber(val) {
return typeof val === 'number';
}
let allNumbers = [1, 2, 4, 5, 6, 7, 8]
console.log(isNumber(allNumbers))
При обработке массива выдает false
. Если написать содержимое массива в виде аргументов, то true
.
Как обработать числовой массив, чтобы метод вернул true
?
Для обработки массива Вам потребуется немного иной подход)
Функция не срабатывает для каждого аргумента переданного массива отдельно. Она отрабатывает, как ей и полагается, для одного переданного значения
В Вашем случае, когда Вы отдаете ей массив, то получаете следующую картину:
function isNumber(val) {
console.log(typeof val); // object
return typeof val === 'number';
}
let allNumbers = [1, 2, 4, 5, 6, 7, 8];
console.log(isNumber(allNumbers)); // false
Чтобы проверить, все ли элементы массива удовлетворяют заданному условию, Вам следует использовать метод Array.prototype.every(), который как раз таки
проверяет, удовлетворяют ли все элементы массива условию, заданному в передаваемой функции.
Приведу простенький пример:
function isNumber(val) {
return typeof val === 'number';
}
// Обозначим функцию для обработки массива
function areNumbers(arr) {
// Передадим в every() лямбду, которая принимает элемент массива и возвращает bool
return arr.every(x => isNumber(x));
// Или короче:
// return arr.every(isNumber);
}
let allNumbers = [1, 2, 4, 5, 6, 7, 8];
console.log(areNumbers(allNumbers)); // true
Надеюсь, мой ответ помог Вам разобраться в Вашей проблеме!
Удачи в Ваших начинаниях!
Ты передаешь в функцию массив чисел, а у массивов в JS тип "object". Используй метод массива "forEach" для обработки каждого элемента отдельно
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть такой плагин, называется TypeItЯ хочу сделать меню на сайте, с эффектом печатающегося текста