JavaScript判断数组是否包含某元素
- find()与findIndex()方法
let arr = [1, 2, undefined, '听风是风', 'echo'];//利用indexOf查找下标的特性
let result = arr.find(ele => ele === '听风是风')//听风之风
if (result) {//do something...
};
find方法是比较推荐的做法,find方法会找到第一个符合条件的数组元素,并返回它,如果没找到则返回undefined。
需要注意的是,只要find找到符合条件的对象后不会继续遍历,可以说自带了break操作,加上箭头函数简化回调,整体代码非常直观。
let arr = [1, 2, undefined, '听风是风', 'echo'];//利用indexOf查找下标的特性
let result = arr.findIndex(ele => ele === '听风是风')//3
if (result>-1) {//do something...
};
findIndex方法与find方法非常类似,只是它返回的不是符合条件的对象,而是该对象的下标,找到后同样会跳出循环,如果没找到则返回-1,这一点与indexOf有点类似。
比较理想的是,find方法还能结合Object.is()方法判断NaN,当然也能判断其它对象,是不是非常的nice?
[NaN].find(ele => Object.is(NaN, ele)); //NaN
[1].find(ele => Object.is(1, ele)); //1
[NaN].findIndex(ele => Object.is(NaN, ele)); //0
[1].findIndex(ele => Object.is(1, ele)); //0
写法简洁,自带break,还能判断NaN,这两个方法都比较推荐。
- some()方法
let arr = [1, 2, undefined, '听风是风', 'echo'];//利用indexOf查找下标的特性
let result = arr.some(ele => ele === '听风是风') //true
if (result) {//do something...
};
some方法同样用于检测是否有满足条件的元素,如果有,则不继续检索后面的元素,直接返回true,如果都不符合,则返回一个false。
用法与find相似,只是find是返回满足条件的元素,some返回的是一个Boolean值,从语义化来说,是否包含返回布尔值更贴切。
当然,some方法同样能结合Object.is()方法检测NaN。some也是较为推荐的方法
[NaN].some(ele => Object.is(NaN, ele));
- includes()方法
ES6新增的数组方法,用于检测数组是否包含某个元素,如果包含返回true,否则返回false,比较厉害的是,能直接检测NaN:
[1, 3, 'echo'].includes('echo'); //true
[NaN, 3, 'echo'].includes(NaN); //true
[1, 3, 'echo'].includes('听风是风'); //false
优点就不用说了,最简单的做法没有之一,不用回调,不用复杂的写法,一个方法直接搞定。
缺点是低版本浏览器支持不是很友好,当然能用我们还是用,不能用我们就自己封装:
let hasEle = (() =>Array.prototype.includes ?(arr, val) => arr.includes(val) :(arr, val) => arr.some(ele => Object.is(val, ele))
)();hasEle([1, 2, NaN], 1) //true
hasEle([1, 2, NaN], NaN) //true
hasEle([1, 2, NaN], '听风是风') //false
JavaScript判断数组是否包含某元素相关推荐
- 易语言 判断数组是否包含某元素
.版本 2.子程序 子程序_判断数组是否包含某元素, 逻辑型 .参数 参_数组, 文本型, 数组 .参数 参_要查找的元素, 文本型 .局部变量 i, 整数型.计次循环首 (取数组成员数 (参_数组) ...
- java数组包含某个元素_java中判断数组是否包含某元素的方法
有两种方法可以判断数组是否包含元素: 方法1, 将数组转换为list,然后使用list的contains方法来判断:Arrays.asList(...).contains(...) java.lang ...
- 6种JavaScript判断数组是否包含某个值的方法
我们在项目开发过程中,经常会要检查一个数组(无序)是否包含一个特定的值?这是一个在JavaScript中经常用到的并且非常有用的操作. 下面给出几种实现方式. 方式一:利用循环 这种方式是比较老的实现 ...
- js和jQuery判断数组是否包含指定元素
最近遇见一些前台基础性问题,在这里笔者觉得有必要记录一下,为了以后自己查阅或者读者查看. 已知var arr = ['java','js','php','C++']; 问题:arr数组是否包含'jav ...
- javascript判断数组是否包含了指定的元素
jQuery写法: var arr = [ "xml", "html", "css", "js" ]; $.inArra ...
- 怎么判断数组是否包含某个元素?
方法一.使用List public static boolean useList(String[] arr, String targetValue) { return Arrays.asLis ...
- 遍历strs数组,并判断数组中每一个元素的长度, * 将长度为偶数的元素和长度为奇数的元素分别存放在两个集合中,
package Day08;import java.util.ArrayList;/*** 二* 字符串数组strs中包含字符串{"12","345",&quo ...
- java数组中包含元素_Java中声明数组时,包括数组的名字、数组中包含的元素的 。 (5.0分)_学小易找答案...
[简答题]3,单冲压片机的安装程序? [判断题]continue语句只用于循环语句中,它起到终止本次循环,返回到循环开始处的作用. (5.0分) [判断题]default在switch选择结构中是必需 ...
- java数组是否包含某字符串_js判断数组是否包含某个字符串变量的实例
最近碰到一个这样的现象,后台返回的数据中,数组里面有一些有变量值,有一些没有变量值. 举个例子,比如后台返回的例子是这样的: var arr=[ { "status":" ...
- JavaScript删除数组里的某个元素
删除的数组的某一项 splice(index,len,[item]) 注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值 index:数组开始下标 ...
最新文章
- AntiXSS - 支持Html同时防止XSS攻击
- 电脑python安装库_Python安装第三方库的3种方法 -电脑资料
- 设置网页背景图片不显示
- 网络安全04_互联网发展史_网线+网卡+协议栈_中继器_集线器_网桥_路由器_AC/AP_防火墙_流控_家庭网络_小型创业公司网络_园区网_政务网络_数据中心网络拓扑_电信网/互联网_Mac地址
- charles抓取手机APP,配置正确却抓不到数据
- 笨鸟学Android开发(1):HelloWorld
- [转载] 字符串最长重复子串python_查找字符串中重复字符的最长子字符串
- office2003 office2007同时安装 配置问题的解决
- python编写dll文件_.dll 文件编写和使用
- Windows2003 企业版支持红外
- ccleaner激活后又要注册_ccleaner如何激活? ccleaner注册激活图文步骤
- 小O地图EXE版V0.9.5.5 - 功能总览
- Squid代理服务器(缓存加速之Web缓存层)
- boox android 4.4,纷极阅读app
- Python求最大公约数的五种常见方法
- 2014美国大学计算机科学专业排名,2014年美国大学计算机科学专业排名.doc
- 【零知ESP8266教程】快速入门10-使用PWM进行调光
- 小米笔记本pro重装系统和问题汇总
- WCHAR我不再惧怕了 - 随感而发 - C++博客
- CSS问题:导航栏设置通栏后,放大页面背景显示不全