javascript 查找数组是否存在指定数据(方法汇总)
在工作中,查找数组是否存在指定数据 这活总是少不了的。本篇文章对 查找数组是否存在指定数据 的常用方法做个汇总。
目录
#1 for 语句
#2 Array.prototype.some()
#3 Array.prototype.findIndex()
初始模拟数据
var userList=[ {"name":"张三","age":24}, {"name":"李四","age":26}, {"name":"王五","age":22} ];复制代码
设需求:查找数据中是否存在 name="李四" 的数据
#1 for 语句
方法说明:创建一个循环。它包含了三个可选的表达式,第一个表达式变用于量声明,第二个条件表达式用于确定每一次循环是否能被执行,第三个为每次循环的最后都要执行的表达式。(更多的不作介绍,相信阅读本篇文章的大家都会使用)
var index=-1; for(var i=0;i<userList.length;i++){ if(userList[i].name == '李四'){ index=i; break; } } if(index>=0){ console.log("数组中存在 name='李四' 的数据"); }
#2 Array.prototype.some()
方法说明:测试是否至少有一个元素可以通过被提供的函数方法,该方法返回一个Boolean类型的值。
注意事项:不兼容IE9以下版本的浏览器,而且返回的值是Boolean类型,并不能返回符合条件的数据在数据中的位置。
var falg=userList.some(function (item,index) { return item.name == '李四'; }); if(falg){ console.log("数组中存在 name='李四' 的数据"); }
#3 Array.prototype.findIndex()
方法说明:返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1
注意事项:该方法是 ES6 版本中引进的方法,只允许在支持 ES6语法的环境,或者有 ES6 转 ES5 的环境中使用。
let index=userList.findIndex((item,index)=> { return item.name == '李四'; }); if(index>=0){ console.log("数组中存在 name='李四' 的数据"); }
本篇文章只介绍 javascript 原生的方法。jQuery的使用者颇多且jQuery中已经有封装好的 $.each() 方法。
作者:黄河爱浪
链接:https://juejin.cn/post/7026897071156232229