【问题标题】:Find Number in Array (two-digit Number)在数组中查找数字(两位数)
【发布时间】:2020-12-14 02:33:17
【问题描述】:

我尝试在数组中找到数字 7 并返回 true (不管是747 还是507

数组:[17, 23, 9, 590]

我尝试使用arr.includes(7),但这只是返回数字7。 (所以在这种情况下它返回false,因为数组中没有7 - 只有17

【问题讨论】:

    标签: javascript arrays split find include


    【解决方案1】:

    问题是比较number === 7,你应该比较每个数字。

    您可以使用函数Array.prototype.some 和函数String.prototype.includes 来检查特定的数字/字符。

    这种方法在每个数字的数字上找到数字 7

    console.log([17, 23, 9, 590].some(n => String(n).includes(7)))

    【讨论】:

      【解决方案2】:

      你可以加入这些数字,看看是否包含7

      var data = [17, 23, 9, 590],
          has7 = data.join('').includes(7);
      
      console.log(has7);

      【讨论】:

        【解决方案3】:

        你不会将数字修改 10 然后寻找 7 吗?

        const findByLeastSigFig = (arr, n) => arr.find(x => x % 10 === n);
        
        console.log(findByLeastSigFig([17, 23, 9, 590], 7));

        【讨论】:

          【解决方案4】:

          假设 7 仅在最后一个位置有效,您可以使用除以 10 的其余部分

          const elements = [7, 9, 17, 23, 57, 407, 590];
          const result = elements.filter(element => element % 10 === 7)
          console.log(result)

          【讨论】:

          • 嗯,是的,但 7 并不总是在最后,但无论如何都非常感谢!
          【解决方案5】:

          这个问题的正确答案不止一个。最简单和最直观的一种(不影响性能)是使用Array.prototype.toString() 加入数组并返回一个字符串,其中包含用逗号分隔的每个数组元素。 [17, 23, 9, 590].toString() 返回字符串 "17,23,9,590",然后使用 String.prototype.indexOf() 查找 7 的索引,该索引返回从 0 开始的 serach 值索引,如果未找到则返回 -1。

          一句话总结:

          console.log([17, 23, 9, 590].toString().indexOf(7) != -1);

          【讨论】:

          • 您能否编辑您的答案,为您的建议提供更多背景信息?
          • 感谢您回答问题。虽然你的答案看起来是正确的,但如果你不能只用一行代码回答,而是解释为什么这个答案也有效,那就太好了。这将有助于 OP 了解您所写的内容,同时也了解是否存在您的建议未涵盖的某些情况。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-24
          • 2023-03-08
          • 1970-01-01
          • 2010-10-26
          • 1970-01-01
          相关资源
          最近更新 更多