JavaScript----判断数组或对象是否包含指定元素的方法总结

扮猪老虎吃IP属地: 湖南
字数 239阅读 5,104
测试数据
let arr = ['a', 'b', 'c']
let obj = {'a': 1, 'b': 2, 'c': 3}

1. in

console.log('a in arr', 'a' in arr)
console.log('aa in arr', 'aa' in arr)
console.log('2 in arr', 2 in arr)
console.log('3 in arr', 3 in arr)
console.log('a in obj', 'a' in obj)
console.log('aa in obj', 'aa' in obj)
运行结果
a in arr false
aa in arr false
2 in arr true
3 in arr false
a in obj true
aa in obj false
总结

in操作符

  • 针对的是key值,而非value值.
  • 对于数组,key值是隐藏的,表示索引值(index)
  • 对于对象,key值显而易见。
  • 返回值:存在true,不存在false

indexOf

console.log('arr.indexOf("a")',arr.indexOf("a"))
console.log('arr.indexOf("aa")',arr.indexOf("aa"))
console.log('obj.indexOf("a")', obj.indexOf("a"))
console.log('obj.indexOf("aa")',obj.indexOf("aa"))
运行结果
arr.indexOf("a") 0
arr.indexOf("aa") -1
报错
报错
总结

indexOf操作符

  • 仅用于字符串、数组。不能用于对象
  • 返回值: 存在返回 索引值(index), 不存在返回 -1

includes

console.log('arr.includes("a")',arr.includes("a"))
console.log('arr.includes("aa")',arr.includes("aa"))
console.log('obj.includes("a")', obj.includes("a"))
console.log('obj.includes("aa")',obj.includes("aa"))
运行结果
arr.includes("a") true
arr.includes("aa") false
报错
报错
总结

indexOf操作符

  • 仅用于字符串、数组。不能用于对象
  • 返回值:存在true,不存在false

自定义函数find

function find(search, object) {
    for (i in object) {
        if(object[i] === search) {
            return true
        }
    }
    return false
}
console.log('find("a",arr)', find('a', arr))
console.log('find("aa",arr)', find('aa', arr))
console.log('find("a",obj)', find('a', obj))
console.log('find("aa",obj)', find('aa', obj))
运行结果
find("a", arr) true
find("aa", arr) false
find("a", obj) false
find("aa", obj) false
总结

自定义函数find可以用于数组和对象。

总结

数组包含某个值的判断:includes / indexOf / find
数组包含某个键(index)的判断: in
对象包含某个值(value)的判断: find
对象包含某个键(key)的判断: in

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
0人点赞
更多精彩内容,就在简书APP
"小礼物走一走,来简书关注我"
还没有人赞赏,支持一下
扮猪老虎吃coding小菜鸟
总资产0.654共写了3.0W字获得15个赞共3个粉丝

推荐阅读更多精彩内容