【问题标题】:finding a index of string [duplicate]查找字符串的索引[重复]
【发布时间】:2016-12-02 20:44:10
【问题描述】:

我有一长串带有页面 ID 的字符串;当当前页面 ID 与数组中的一个匹配时,需要发生一些事情(在此测试中发出警报)。 无论 url 是否包含数组中的一个 id,警报都会在任何页面上弹出。我的 if 语句有什么问题:if(pageHref.indexOf(id))?感谢您的建议

var pageHref = window.location.href;
var ids = ['14528','14417','17529'];
for (var i = 0; i < ids.length; i++) {
    var id = ids[i];
    if (id.length > 0) {
        if(pageHref.indexOf(id)){
            //do something
            alert('a');
        }
    }
}

【问题讨论】:

  • ids.find(id =&gt; pageHref.indexOf(id) !== -1)
  • indexOf 如果没有找到则返回-1
  • 为什么对答案投反对票?
  • 好问题.. 很奇怪...
  • 谢谢,这对大家很有帮助。我还没有 15 的声望,所以它不会计算我对你的支持。为什么有人给出否定的答案?他们都工作

标签: javascript arrays


【解决方案1】:

一篇博文here 有一个表格解释了在javascript 条件语句中哪些值被评估为真。对于数值,它仅声明 +0、-0 和 NaN 评估为假。因为 indexOf 返回 -1 表示不匹配,所以它评估为 true 表示不匹配的 id。你会想使用:

if(pageHref.indexOf(id) > -1)

【讨论】:

    【解决方案2】:

    IndexOf 返回一个数字,如果数字为-1,则不匹配。

    例如尝试。 pageHref.indexOf(id) != -1.

    【讨论】:

      猜你喜欢
      • 2013-07-15
      • 2021-06-30
      • 2021-12-10
      • 1970-01-01
      • 2016-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多