JavaScrip 判断数据结构中是否存在特定的值或属性
对象
in
格式:变量 in 对象
当‘对象’是数组时:“变量”指的是数组的“索引”(不常用)
当‘对象’为对象时,“变量”指的是对象的“属性”,判断对象自身属性和继承属性是否存在
Object.prototype.hasOwnProperty(value)
格式:object.hasOwnProperty(value)
该方法只能判断对象自身属性是否存在,对于继承属性会返回false
数组
Array.prototype.indexOf(value,start)/lastIndexOf(value,start)
格式:arr.indexOf(value)
从左往右/从右往左(lastIndexOf)返回value在数组中出现的第一个下标,没有出现则返回-1
使用严格相等运算符(===)进行判断
应用场景
两个方法结合判断下标是否相等,可以用来判断数组中唯一出现的值
Array.prototype.find((function(value,index,arr))/ findIndex((function(value,index,arr))
格式
find(function(value,index,arr)):找到第一个满足条件返回true的元素,没有返回undefined·
findIndex(function(value,index,arr)):找到第一个满足条件返回true的元素下标,没有返回-1
let arr = [2,4,6]
console.log(arr.find((value, index) => value > 4));
//输出6
let arr = [2,4,6]
console.log(arr.findIndex((value, index) => value > 4));
//输出2
Array.prototype.includes(val,startIndex)
返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes方法类似。
第二个参数表示搜索的起始位置
[NaN].indexOf(NaN)
// -1
[NaN].includes(NaN)
// true
字符串
string.indexOf(searchContent,start)/lastIndexOf(searchContent,start)
indexOf从左往右找
返回值:匹配成功的第一个字符的下标,未匹配则返回-1
lastIndexOf从字符串的尾部开始查找
返回值:匹配成功的第一个字符的下标,未匹配则返回-1
string.includes(searchContent, start)
返回一个布尔值,表示某个字符串是否包含给定的字串,与数组的includes方法类似。
第二个参数表示搜索的起始位置
string.search(searchContent)
搜索字符串中是否含有指定内容,类似indexOf()
,区别是参数可以是正则表达式
搜索字符串中是否含有指定内容,返回第一次(即使是全局匹配也会 失效)出现的索引或者-1