我试图在javascript中检查数组的所有元素类型。我实际上正在编写一个只接受带数字的数组的函数。
所以
[1,2,-3,-4,0] //valid input
[1,2,-3b,-4a,0] //Invalid input
我试图通过使用javascript的every()函数来实现以下目的,
try {
if (!inputArr.every(x => typeof x === 'number')) {
throw 'input array should only have numbers';
}
}
catch (err) {
return err;
}
但是收到错误。当我进一步调查它而不是意识到这一点时,
typeof 1 // number
typeof 1a // error
所以我们无法检查字母数字值的类型。有人可以在这里建议一些选项。我使用的是纯粹的JavaScript ES5或ES6。
答案 0 :(得分:0)
[1,2,-3b,-4a,0]
语法无效,您的程序甚至无法运行。因此,我们假设输入是一个字符串,如"[1,2,-3b,-4a,0]"
中所示。在那种情况下:
function check(input) {
try {
const array = JSON.parse(input);
return array.every(x => typeof x === 'number');
} catch(e) {
return false;
}
}