Подтвердить что ты не робот

Проверьте, содержит ли массив (только) числовые значения

У меня есть массивы, такие как

var arrayVal_Int = ["21", "53", "92", "79"];   
var arrayVal_Alpha = ["John", "Christine", "Lucy"];  
var arrayVal_AlphaNumeric = ["CT504", "AP308", "NK675"];
  • Выше arrayVal_Int следует рассматривать как (чисто) числовой.
  • arrayVal_Alpha и arrayVal_AlphaNumeric должны рассматриваться как строки.

Мне нужно проверить это в JavaScript.

4b9b3361

Ответ 1

Самое короткое решение, оценивается до true тогда и только тогда, когда каждый элемент является (допустимым) числом:

!yourArray.some(isNaN)

Ответ 2

Используя простой JavaScript, вы можете сделать что-то вроде этого:

var IsNumericString = ["21","53","92","79"].filter(function(i){
    return isNaN(i);
}).length > 0;

Он вернет true;

Ответ 3

У меня была аналогичная потребность, но я хотел проверить, содержит ли список только целые числа (то есть без десятичных дробей). На основе приведенных выше ответов здесь есть способ сделать это, который я публикую на случай, если кому-то понадобится аналогичная проверка.

Спасибо @Touffy, за ваше предложение.

let x = [123, 234, 345];
let y = [123, 'invalid', 345];
let z = [123, 234.5, 345];

!x.some(i => !Number.isInteger(i))  // true
!y.some(i => !Number.isInteger(i))  // false
!z.some(i => !Number.isInteger(i))  // false

Ответ 4

Попробуйте это:

let x = [1,3,46,7,7,8];
let y = [1,354,"fg",4];
let z = [1, 3, 4, 5, "3"];

isNaN(x.join("")) // false
isNaN(y.join("")) // true
isNaN(z.join("")) // false