数组Array和字符串String的indexOf方法,以及ES7(ES2016)中新增的Array.prototype.includes方法
前言
我们在判断某一个字符是否存在于一个字符串中或者某一个值是否存在于一个数组中时,ES7之前我们需要使用indexOf,ES7引入了新的方法includes
语法
数组:Array.inexOf(searchElement, startIndex)
字符串:String.inexOf(searchElement, startIndex)
第一个参数searchElement是要检索的值
第二个参数是可选值,从何处开始进行检索,如果不规定此值,则默认从首字符开始检索
查看数组和字符串的原型链我们就可以看到有indexOf这个方法
let str = 'react,vue';
let arr = ['react', 'vue'];
console.log(str.__proto__);
console.log(arr.__proto__);
我们可以看到数组和字符串的原型链中就有这个方法,并且我们看到有一个includes方法,它就是es7中新增的属性
用法
indexOf:(返回检索元素在被检索对象中首次出现的位置, 如果没有找到则返回-1, 我们判断检索元素是否存在,则需要判断这个值是不是等于-1)
// 数组
let arr = ['react', 'vue', 'javascript'];
if (arr.indexOf('vue') !== -1) {
console.log(arr.indexOf('vue')); //
} // 字符串
let str = 'react, vue, javascript';
if (str.indexOf('vue') !== -1) {
console.log(str.indexOf('vue')); //
}
includes:(如果检索元素存在于被检索对象中则返回true,否则返回false)
// 数组
let arr = ['react', 'vue', 'javascript'];
if (arr.includes('vue')) {
console.log('arr数组中有vue这个值');
} // 字符串
let str = 'react, vue, javascript';
if (str.includes('vue')) {
console.log('str中有vue');
}
总结
使用includes就再也不用判断是不是-1了,如果要获取索引位置还是使用indexOf,非常好用的方法
数组Array和字符串String的indexOf方法,以及ES7(ES2016)中新增的Array.prototype.includes方法的更多相关文章
- java字符数组char[]和字符串String之间的转换
java字符数组char[]和字符串String之间的转换 觉得有用的话,欢迎一起讨论相互学习~Follow Me 使用String.valueOf()将字符数组转换成字符串 void (){ cha ...
- C#中字节数组byte[]和字符串string类型的相互转换
C#中字节数组byte[]和字符串string类型的相互转换: string转byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBy ...
- S5中新增的Array方法详细说明
ES5中新增的Array方法详细说明 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wor ...
- JavaScript (JS)基础:DOM 浅析 (含数组Array、字符串String基本方法解析)
①文本对象document: 例如:document.getElementById() 只获取一个对象 document.getElementsByTagName() 获取 ...
- JAVA中数组(Array)、字符串(String)、集合(List、Set)相互转换
1.数组转List String[] arr = new String[]{"A", "B", "C"}; List list = Arra ...
- Java基础——数组应用之字符串String类
字符串String的使用 Java字符串就是Unicode字符序列,例如串“Java”就是4个Unicode字符J,a,v,a组成的. Java中没有内置的字符串类型,而是在标准Java类库中提供了一 ...
- ES5中新增的Array方法详细说明
一.前言-索引 ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块,我们可能就不需要去有板有眼地for循环了. ES5中新增了写数组方法,如下: forEach (j ...
- ES5中新增的forEach等新方法的一些使用声明
转载地址:http://www.zhangxinxu.com/wordpress/?p=3220 一.前言-索引 ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块, ...
- ECMAScript5中新增的Array方法实例详解
ECMAScript5标准发布于2009年12月3日,它带来了一些新的,改善现有的Array数组操作的方法.(注意兼容性) 在ES5中,一共有9个Array方法:http://kangax.githu ...
随机推荐
- ie不支持的event.stopPropagation的解决方式
if (event.stopPropagation) { // 针对 Mozilla 和 Opera event.stopPropagation(); } else if (window.event) ...
- 无监督学习:Deep Auto-encoder(深度自动编码器)
一 Auto-encoder NN Encoder & NN Decoder 要一起训练. 二 Starting from PCA 三 Deep Auto-encoder PCA&De ...
- [UE4]Component相关常用API
http://www.dawnarc.com/2017/02/ue4component%E7%9B%B8%E5%85%B3%E5%B8%B8%E7%94%A8api/ Actor.h //获取第一个与 ...
- uoj#352. 新年的五维几何(概率期望+爆搜)
传送门 我还以为这是个五维半平面交呢--结果没看数据范围-- 题解 //minamoto #include<bits/stdc++.h> #define R register #defin ...
- web前端篇:CSS使用,样式表特征,选择器
目录 web前端篇:CSS使用,样式表特征,选择器 1.CSS介绍 2.CSS使用 3.样式表特征 4.CSS选择器 5.选择器的优先级 6.练习题: web前端篇:CSS使用,样式表特征,选择器 1 ...
- Unity 播放的声音比声音文件小很多-AudioListener-AudioClip
今天做愤怒的小鸟时,播放的时候非常非常小,怎么也查不到原因,就去问群里的大佬.原来, 播放音乐的方法: AudioSource.PlayClipAtPoint(audioclip, transform ...
- IDEA打开项目格式问题
今天遇到一个奇葩问题,从git上面迁maven代码下来后,然后打开文件,加载项目,会导致Modules模块加载的内容不正确,出现这种情况,要么删除原来的模块,重新导入main模块,要么采用第三张图片的 ...
- pyinstaller打包多个py文件仍报错ModuleNotFoundError: No module named 'xxx'
[问题现象] 使用pyinstaller A.py -p b.py -p c.py打包多个文件 或者使用main.spec在Analysis配置好各个文件打包 打包成功后,运行main.exe仍然报错 ...
- react-native-video的使用
/** * Sample React Native App * https://github.com/facebook/react-native * * @format * @flow */ impo ...
- STP-14-MST配置
在配置MST之前,工程师要进行一定程度的预先规划.首先,必须决定是否应该使用多区域设计,以及如何设置边界.多区域的设计使得每个区域都有独立的MST实例编号.VLAN到实例的映射,以及独立的实例根.整体 ...