let arr = ['甲', '乙', '丙', '丁']
console.log(arr.includes('甲')) // true
console.log(arr.includes('戊')) // false
let arr = ['甲', '乙', '丙', '丁']
console.log(arr.indexOf('甲')) // 0 (有就返回索引0~n)
console.log(arr.indexOf('戊')) // -1 (没有就返回-1)
let arr = ['甲', '乙', '丙', '丁']
let flag1 = arr.findIndex((item) => {
return item == '甲'
})
console.log(flag1) // 0 (有就返回索引0~n)
let flag2 = arr.findIndex((item) => {
return item == '戊'
})
console.log(flag2) // -1 (没有就返回-1)
let arr = ['甲', '乙', '丙', '丁']
let flag3 = arr.some((item) => { // 只要有一个存在就返回true
return item == '甲'
})
console.log(flag3) // true
let flag4 = arr.some((item) => { // 一个都不存在才返回false
return item == '戊'
})
console.log(flag4) // false
// 定义标识搭配循环for、forEach...
let arr = ['甲', '乙', '丙', '丁']
let flag5 = false // 默认不存在
arr.forEach((item) => {
if (item == '甲') { // 戊
flag5 = true
}
})
console.log(flag5) // true // false
类似这种简单的数组,数组中只有单一项,内部存储的字符串或者数字之类的,
使用includes或indexOf方便一些
arr = [1,2,3,4,5]
arr2 = ['发财','白皮','红中']
如带层级的数组,数组中对象或更多层级的结构,这个时候需要使用带回调函数的方法,
此时再去使用includes或indexOf就不够用了
arr3 = [
{
name: '孙悟空',
age: 500
},
{
name: '猪八戒',
age: 88
},
{
name: '沙和尚',
age: 1000
},
]
最大的区别就是 - indexOf是 === - includes是 ==
indexOf要求严格,无法正确判断数组中是否有NaN 但是includes可以
let arr = [NaN, 1, undefined]
console.log(arr.includes(NaN)) // true
console.log(arr.indexOf(NaN)) // -1
// undefined不受影响
console.log(arr.includes(undefined)) // true
console.log(arr.indexOf(undefined)) // 2
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!