当前位置: 首页 > 面试题库 >

如何检查数组是否在JavaScript中包含值?

阚允晨
2023-03-14
问题内容

找出JavaScript数组是否包含值的最简洁,最有效的方法是什么?

这是我知道的唯一方法:

function contains(a, obj) {
    for (var i = 0; i < a.length; i++) {
        if (a[i] === obj) {
            return true;
        }
    }
    return false;
}

有没有更好,更简洁的方法来实现这一目标?

这与Stack Overflow问题密切相关。在JavaScript数组中查找项目的最佳方法?解决使用数组查找对象的问题indexOf。


问题答案:

现代的浏览器Array#includes,这不正是这一点,得到广泛支持的人,除IE:

console.log(['joe', 'jane', 'mary'].includes('jane')); //true

你也可以使用Array#indexOf,它不太直接,但对于过时的浏览器不需要使用polyfill

许多框架还提供类似的方法:

  • jQuery: $.inArray(value, array, [fromIndex])
  • Underscore.js:_.contains(array, value) (also aliased as _.include and _.includes)
  • Dojo Toolkit: dojo.indexOf(array, value, [fromIndex, findLast])
  • Prototype: array.indexOf(value)
  • MooTools: array.indexOf(value)
  • MochiKit: findValue(array, value)
  • MS Ajax: array.indexOf(value)
  • Ext: Ext.Array.contains(array, value)
  • Lodash: _.includes(array, value, [from]) (is _.contains prior 4.0.0)
  • Ramda: R.includes(value, array)

注意,有些框架将此功能实现为一个函数,而另一些框架则将该函数添加到数组原型中。



 类似资料:
  • 问题内容: 找出JavaScript数组是否包含值的最简洁,最有效的方法是什么? 这是我知道的唯一方法: 有没有更好,更简洁的方法来实现这一目标? 这与Stack Overflow问题密切相关。 在JavaScript数组中查找项目的最佳方法?解决使用数组查找对象的问题。 问题答案: 现代的浏览器,这不正是这一点,得到广泛支持的人,除IE: 你也可以使用,它不太直接,但对于过时的浏览器不需要使用。

  • 问题内容: 我有一个Array类型的PHP变量,我想找出它是否包含特定值,并让用户知道它在那里。这是我的数组: 我想做些类似的事情: 最好的方法是什么? 问题答案: 使用功能。

  • 问题内容: 我想为数组中的每个值返回一个布尔值,指示它是否在array中。我猜这应该是一个标准程序,但是我找不到有关如何执行此操作的任何信息。我的尝试如下: 但是,我得到了错误: 我使用的是numpy,因此首选使用numpy或标准Python的解决方案。 问题答案: 我相信您可以使用-

  • 问题内容: 我只是想知道如何检查TreeMap>是否包含Java中的值?例如: 当我使用containsValue()或contains()方法时,我总是会得到false。有人知道为什么,可以给我建议吗? 谢谢爱德 问题答案: 您正在测试以查看地图是否包含字符串“ square”-但是地图中的值是ArrayList 对象。 如果知道要查找形状,则可以首先获取“形状”列表,然后进行测试以查看其是否包

  • 本文向大家介绍如何检查数组在JavaScript中是否为真数组?,包括了如何检查数组在JavaScript中是否为真数组?的使用技巧和注意事项,需要的朋友参考一下 在javascript中,数组不是true数组。它们是javascript对象。因此,当我们尝试使用typeof()运算符了解其类型时,显示的输出将为object。 语法 参数 -的typeof()运算符采用一个操作数并返回操作数的数据

  • 问题内容: 假设我创建了一个像这样的文档: 我可以使用GET / idx / type / 1检索文档: 现在,我想检查字段“ the_field”是否包含值2。我知道我可以使用term子句,但是我需要使用过滤器脚本检查它,因此我尝试了: 并没有结果: 为了测试我的mevl脚本语法是否正确,我尝试这样做: 并获得正确的结果: 我究竟做错了什么? 我认为doc [‘the_field’]。value