如果数组包含所有整数,我想检查返回 true,否则返回 false。我正在尝试使用每种方法 MDN docs every .
因此,如果给定“1234”,它将返回 true,如果给定“123a”,它将返回 false。
function validatePIN (pin) {
pinArray = pin.split("");
if (pinArray.length === 4 || pinArray.length === 6) {
if (pinArray.every(Number.isInteger()) === true;) {
return true
}};
every 如何将元素传递给 isInteger 以便它可以对其进行测试?
最佳答案
即使您修复语法错误并将 Number.isInteger
作为函数传递,这也不会起作用。
function wrongValidatePIN (pin) {
var pinArray = pin.split(""); // <-- array of strings
if (pinArray.length === 4 || pinArray.length === 6) {
if (pinArray.every(Number.isInteger)) { // <-- isInteger works with numbers
return true
}}
return false
}
console.log(wrongValidatePIN('1234'))
你需要这样的东西
function validatePIN (pin) {
var pinArray = pin.split(""); // <-- array of strings
return (pinArray.length === 4 || pinArray.length === 6)
&& pinArray.every(char => !Number.isNaN(Number.parseInt(char, 10)))
}
console.log(validatePIN('1234'), validatePIN('123a'))
或者你可以使用正则表达式
function validatePin(pin) {
return /^(\d{4}|\d{6})$/.test(pin)
}
console.log(validatePin('1234'), validatePin('123456'),
validatePin('12345'), validatePin('123a'))
关于Javascript - 用于检查数组元素上的 isInteger 的 every() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44647289/