JavaScript 判断值是否在数组中的方法:in 与 indexOf
本文介绍在 JavaScript 中判断值是否存在于数组的两种常见方式。首先解析 in 操作符仅能检测数组下标而非值的特性,随后重点介绍使用 indexOf 方法判断元素是否存在的具体用法及浏览器兼容性说明。
JavaScript 判断值是否在数组中的方法:in 与 indexOf
本文主要介绍如何在 JavaScript 中判断某个值是否存在于数组中,供读者参考学习。
问题描述
> var b = ["aa", "bb"]
> "aa" in b
问题描述
需要判断字符串 'aa' 是否存在于数组中,使用 in 操作符是否可行?
in 操作符
in 操作符
首先说明 in 操作符的用法。
Python 用户可能会疑惑是否可以直接使用 in,但在 JavaScript 中并不支持这种用法。先看看 Python 中的效果:
>>> a = ["aa" , "bb"]
>>> "aa" in a
True
>>>
JavaScript 的行为不同,in 操作符的操作对象必须是一个对象。MDN 官网对此有明确说明:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/in
简而言之:
1. 在数组中搜索的是下标。
2. 在对象中可以使用 key in obj 这种形式,例如:
// Arraysvar trees = ['redwood', 'bay', 'cedar', 'oak', 'maple'];
0 in trees // returns true
3 in trees // returns true
6 in trees // returns false
'bay' in trees // returns false (you must specify the
// index number, not the value at that index)
'length' in trees // returns true (length is an Array property)
Symbol.iterator in trees // returns true (arrays are iterable, works only in ES2015+)
// Predefined objects'PI' in Math // returns true
// Custom objectsvar mycar = {make: 'Honda', model: 'Accord', year: 1998};
'make' in mycar // returns true
'model' in mycar // returns true
indexOf 方法
indexOf 方法
这是一个非常实用的方法,可以直接使用。如果是前端开发,需确保浏览器支持;Node.js 环境则完全支持。
示例:
> var b = ["aa", "bb"]
undefined
> "aa" in b
false
> b.indexOf("aa")
0
> b.indexOf("aaa")
最简单直接的办法
就是做一个 for 循环,一个个比较吧。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对本站的支持
JS大数值转字符串出现科学计数法怎么办
2026-11-05 17:09:21
JS split切割后出现空字符串怎么过滤
2026-11-05 16:00:30
在 React 或 Vue 项目中封装使用 JS 节流防抖
2026-11-05 15:27:29
JavaScript中怎么将带小数的字符串转为整数?
2026-11-05 14:32:38
怎么用JavaScript策略模式重构电商促销计算逻辑?
2026-11-05 14:01:09
