JavaScript判断数组对象是否含有某个值的方法(6种)

这篇具有很好参考价值的文章主要介绍了JavaScript判断数组对象是否含有某个值的方法(6种)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

知识回调

文章内容 文章链接
vue3 antd table表格的增删改查(一)input输入框根据关键字搜索【后台管理系统纯前端filter过滤】 https://blog.csdn.net/XSL_HR/article/details/128072584?spm=1001.2014.3001.5501
vue3 antd table表格的增删改查(二)input输入框根据关键字搜索【后台管理系统 请求后端接口 前后端交互】 https://blog.csdn.net/XSL_HR/article/details/128089801?spm=1001.2014.3001.5501

场景复现

在后台管理系统的项目开发中,对于数组对象的处理非常常见,比如数组对象的排序数组对象的筛选数组对象的模糊查询。往期文章我们介绍了关于数组对象排序和筛选的内容,本期文章主要介绍判断数组对象是否含有某个值的方法


实现方式(6种)

利用循环遍历数组元素

  • 使用循环遍历数组元素是比较传统,也比较老的实现方案,但是不可否认的是,这种方法在浏览器种效率较高,并且理解起来很快
  • 但是,当限制条件很多时,会产生多层循环和多次数据处理的问题。
function contains(arr, val) {
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] === val) {
            return true;
        }
    }
    return false;
}
contains([1,2,3],3);//true

当然,也可以使用while语句

function contains(arr, val) {
    var i = arr.length;
    while (i--) {
       if (arr[i] === val){
           return true;
       }
    }
    return false;
}
contains([1,2,3,4],1);//true

利用some,filter方法

使用some方法更加简洁,一旦找到元素,迭代就会终止,从而避免了不必要的迭代周期(不过使用循环也能解决,但是增加了代码量)

示例代码:

function contains(arr, val) {
    return arr.some(item => item === val);
}

这里可以直接使用箭头函数对数据进行筛选,相比循环而言更加简洁。

使用filter方法最为常见,filter本身为过滤的意思,一般在filter的箭头函数中添加筛选条件
注意array.filter(e=>e==x).length > 0等效于array.some(e=>e==x),但some更有效)

示例代码:

function contains(arr, val) {
    return arr.filter((item)=> { return item == val }).length > 0;
}

利用array.indexOf方法

  • array.indexOf此方法判断数组中是否存在某个值,如果存在返回数组元素的下标,否则返回-1。
  • indexOf方法在筛选数组数据时十分常用,一般用于模糊查询和关键字搜索。
[1, 2, 3].indexOf(1);//0
["foo", "fly63", "baz"].indexOf("fly63");//1
[1, 2, 3].indexOf(4);//-1

注意:

  • indexOf() 方法对大小写敏感。如果要检索的字符串值没有出现,则该方法返回 -1。
  • 在比较第一个参数与数组中的每一项时,会使用全等操作符,即要求查找的项必须严格相等
  • 数组的位置是ECMAScript5为数组实例新增的,支持的浏览器有IE9+,Firefox,Safari,Opera,Chrome。

利用array.includes方法

  • array.includes(searchElement[, fromIndex]) 此方法判断数组中是否存在某个值
  • 如果存在返回true,否则返回false。
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false

它还接受可选的第二个参数fromIndex

[1, 2, 3].includes(3, 3); // false
[1, 2, 3].includes(3, -1); // true

不像indexOf,它采用严格相等比较。这意味着您可以检测数组是否包含NaN

[1, 2, NaN].includes(NaN); // true

也不同于indexOf,includes不会跳过缺失的索引

new Array(5).includes(undefined); // true

利用array.find方法

find用于返回数组中满足条件的第一个元素的值,如果没有,返回undefined

let numbers = [12, 5, 8, 130, 44];
let result = numbers.find(item => {
    return item > 8;
});
console.log(result);//12
//元素是对象
let items = [
    {id: 1, name: 'something'},
    {id: 2, name: 'anything'},
    {id: 3, name: 'nothing'},
];
let item = items.find(item => {
    return item.id == 3;
});
console.log(item) //Object { id: 3, name: "nothing" }

除了find,我们也可以使用array.indIndex。返回数组中满足条件的第一个元素的索引(下标), 如果没有找到,返回-1(和第三种方法indexOf类似)

利用set中has方法

function contains(arr, val) {
  return new Set(arr).has(val)
}
contains([1,2,3],2);//true

通过new set([])将数组转换成Set对象,set.prototype.has(value)判断该值是否存在于Set对象中,返回布尔值

延伸:除此之外,还可以利用它进行数组去重

let arr2 = new Set([1,1,2,3,4]) 
let arr3 = [...arr2] 
console.log(arr2,arr3) // {1,2,3,4} [1,2,3,4]

JavaScript判断数组对象是否含有某个值的方法(6种)文章来源地址https://www.toymoban.com/news/detail-455387.html

本期小结

本期文章详细介绍了六种方法,用于判断数组对象是否含有某个值。当然,在往期文章中,我们利用filter和indexOf对数据进行过简单的增删改查,但是当查询的数据变成数组对象里的数组对象时,我们应该怎么解决呢?

下期文章将介绍vue antd table表格的增删改查(三)(input输入框根据关键字模糊查询)
感兴趣的小伙伴可以订阅本专栏,方便后续了解学习~
觉得这篇文章有用的小伙伴们可以点赞➕收藏➕关注哦~

JavaScript判断数组对象是否含有某个值的方法(6种)

到了这里,关于JavaScript判断数组对象是否含有某个值的方法(6种)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用js判断list中是否含有某个字符串,存在则删除,

    显示上图中使用了两种方式, 左边的是filter将不等于userCode的元素筛选出来组成一个新的list, 但是上面这个方法在 IE浏览器中不支持 , 所以改成了右边的方法,使用splice: splice传入两个参数,第一个参数是要删除的元素的索引位置,第二个是从这个索引往后删除几个;

    2024年01月24日
    浏览(69)
  • Java判断List集合中的对象是否包含有某一元素

    关于以下方法,直接可以在自己项目创建一个类,然后进行测试使用!文本末尾也提供了每个方法的运行结果,供大家参考使用! 文章大量使用到了Java8当中的Lambda表达式,以及stream流相关基础知识。如果您用的不熟,没关系,可以直接复制下面的方案然后进行套着使用即可

    2024年02月11日
    浏览(74)
  • JS中判断某个字符串、数组等是否包含某个值

    方法一: indexOf()   (推荐)   indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。 方法二:match()   match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 方法三: search()   search() 方法

    2024年02月03日
    浏览(112)
  • js判断对象是否拥有某个key

    方法一 : \\\"key\\\" in obj ,结果为 false,表示不包含;否则表示包含 方法二 : obj.hasOwnProperty(\\\"key\\\") ,obj 表示对象,结果为 false 表示不包含;否则表示包含 这两种方法都可以用于检查对象是否包含指定的属性,但它们有一些区别。 “key” in obj: 这种方法使用 in 运算符来检查属

    2024年02月08日
    浏览(65)
  • js判断对象是否存在某个属性的办法

    在 JavaScript 开发中,判断一个对象是否存某个属性在是非常基础的操作,也是开发者经常需要处理的问题之一。然而,繁琐的代码可能会让我们感到疲惫不堪,因此这里将介绍几种 JavaScript 小技巧,帮助你更高效地判断对象属性的存在性,提高代码效率⏱。 👋 技巧一: 使用

    2024年02月09日
    浏览(74)
  • java 怎么判断某个字符串是否在数组中

    在 Java 中,可以使用以下几种方法来判断一个字符串是否在数组中: 使用 for 循环遍历数组,逐个比较字符串是否相等。 使用 Arrays.asList() 将数组转换为列表,然后使用列表的 contains() 方法来判断字符串是否在数组中。 使用 Java 8 的 Stream API,使用 anyMatch() 方法来判断是否存

    2024年02月14日
    浏览(98)
  • mysql数据库存数组类型数据,如何判断数组中是否包含某个值?使用mybatisplus查询。

    跟mybatisplus中.in()方法相反的函数 mybatisplus的in函数:查询的是数据库的某个属性的值是否在给定的集合中。这里我们讲的是一个值是否在数据库的某个属性数组中。 说明: 这是一张学生信息表,其中包含了学生曾经就读过的学校。现在我们要做的就是查询哪些学生就读过指

    2024年02月16日
    浏览(99)
  • java判断某个字符串是否在字符串数组中的方法(4种)

    public class Demo {     public static boolean useLoop(String[] arr, String targetValue) {         for (String s : arr) {             if (s.equals(targetValue)) return true;         }         return false;     }       public static void main(String[] args) {         String arr[] = {\\\"aa\\\", \\\"bb\\\", \\\"cc\\\"};       

    2024年02月11日
    浏览(104)
  • JavaScript对象数组根据某个属性值筛选分类

    🤵 作者 : coderYYY 🧑 个人简介 :前端程序媛,目前主攻 web前端 ,后端辅助,其他技术知识也会偶尔分享🍀欢迎和我一起交流!🚀(评论和私信一般会回!!) 👉 个人专栏推荐 :《前端项目教程以及代码》 在开发中,这种需求还是挺常见的,常用于处理后端返回的数据

    2024年02月06日
    浏览(49)
  • PHP开发日志 ━━ 不同方法判断某个数组中是否存在指定的键名,测试哪种方法效率高

    我们可以用 isset($arr[\\\'a\\\']) 或者 array_key_exists(\\\'a\\\', $arr) 来判断 \\\'a\\\' 键名是否存在与 $arr 数组。 那么这两种方式哪个运行速度快呢? 不多废话了,现在我们写一段代码来测试一下: 结论是 isset() 更胜一筹。

    2024年02月02日
    浏览(86)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包