Javascript - 用于检查数组元素上的 isInteger 的 every() 方法

标签 javascript arrays

如果数组包含所有整数,我想检查返回 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/

相关文章:

c# - HighCharts (highstock) - 数据不会显示

javascript - AngularJS 和 jQuery...同时使用两者有什么问题?

php - array_search() 的逆向查找键而不是值

python - 从字符串中读取数据,区分元素是数字还是数组

php - 合并不同长度的数组php

javascript - 单词的阿拉伯语句子在数据表上颠倒了 pdfhtml5 "pdfmake"

javascript - AngularJS:有没有办法在标签元素上创建双向绑定(bind),以便我可以动态地将其附加到对象?

javascript - Angular.js ng-repeat 迭代远程 JSON 数组问题

php - 如何使用字符串从嵌套数组中获取值

mysql - 将 MySQL 行值存储为数组值