JS中判断某个字符串/数组中是否包含某个值
字符串
方法一: indexOf() (推荐)
var
str =
"123"
console.log(str.indexOf(
"2"
) != -1);
// true
方法二:match()方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。
var
str =
"123"
var
reg = RegExp(/3/);
if
(str.match(reg)){
//包含;
}
方法三: search()方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
var
str =
"123"
console.log(str.search(
"2"
) != -1);
// true
RegExp对象的方法search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回 -1。
方法四: test()
var
str =
"123"
var
reg = RegExp(/3/);
console.log(reg.test(str) != -1); // true
方法五:exec()方法用于检索字符串中指定的值。返回 true 或 false。
var
str =
"123"
var
reg = RegExp(/3/);
if
(reg.exec(str)){
//包含;
}
exec() 方法用于检索字符串中的正则表达式的匹配。返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
数组
方法一:array.indexOf(item,start):元素在数组中的位置,如果没与搜索到则返回 -1。
参数 | 描述 |
item | 必须。查找的元素。 |
start |
可选的整数参数。规定在数组中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。 如省略该参数,则将从字符串的首字符开始检索。 |
var fruits = ["a", "b", "c", "d"];var a = fruits.indexOf("b"); // 1//输出结果意味着 "b" 元素位于数组中的第 2 个位置。
var fruits=["a","b","c","d","a","b","c"];
var a = fruits.indexOf("b",3); //5
//以上输出结果意味在数组的第三个位置开始检索
方法二:array.find()
数组实例的find()用于找出第一个符合条件的数组元素。它的参数是一个回调函数,所有数组元素依次遍历该回调函数,直到找出第一个返回值为true的元素,然后返回该元素,否则返回undefined。
find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。find() 方法为数组中的每个元素都调用一次函数执行:
- 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
- 如果没有符合条件的元素返回 undefined
注意: find() 对于空数组,函数是不会执行的。find() 并没有改变数组的原始值。
[1, 5, 10, 15].find(function(value, index, arr) {return value > 9; }) // 10//实际用法: arr.find(function(value) {if(value === 要查找的值) {...} })
方法三:array.findIndex()
array.findIndex()和array.find()十分类似,返回第一个符合条件的数组元素的位置,如果所有元素都不符合条件,则返回-1。
findIndex() 方法为数组中的每个元素都调用一次函数执行:
当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 -1
注意: findIndex() 对于空数组,函数是不会执行的。 findIndex() 并没有改变数组的原始值
var ages = [3, 10, 18, 20]; function checkAdult(age) {return age >= 18; }function myFunction() {console.log(ages.findIndex(checkAdult)) ; } myFunction() //2
方法二和方法三,这两个方法都可以发现NaN,弥补了方法一IndexOf()的不足。
[NaN].indexOf(NaN)
//-1
[NaN].findIndex(y => Object.is(NaN, y))
// 0
方法四:for()循环
遍历数组,然后 if 判断var arr = [1, 10, 20, 30];//传统for for(let i=0; i<arr.length; i++) {if(arr[i] === 查找值) {...} }// for...of for(v of arr) {if(v === 查找值) {...} }//forEach arr.forEach(v=>{if(v === 查找值) {...} })
方法五:就是使用jquery的inArray方法,该方法返回元素在数组中的下标,如果不存在与数组中,那么返回-1,代码如下所示:
/**
* 使用jquery的inArray方法判断元素是否存在于数组中
* @param {Object} arr 数组
* @param {Object} value 元素值
*/
function isInArray(arr,value){var index = $.inArray(value,arr);if(index >= 0){return true;}return false; }
方法六、include()方法:
arr.includes(searchElement)方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。searchElement:必须。需要查找的元素值。
例子 | 结果 |
[1, 2, 3].includes(2); | //true |
[1, 2, 3].includes(4); | // false |
[1, 2, 3].includes(3, 3); | // false |
[1, 2, 3].includes(3, -1); | //true |
[1, 2, NaN].includes(NaN); | //true |
arr.includes(searchElement, fromIndex).fromIndex:可选。从该索引处开始查找 searchElement。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。
var arr = ['a', 'b', 'c']; 注意:如果fromIndex 大于等于数组长度 ,则返回 false 。该数组不会被搜索 arr.includes('c', 3); //false arr.includes('c', 100); // false注意:如果 fromIndex 为负值,计算出的索引将作为开始搜索searchElement的位置。如果计算出的索引小于 0,则整个数组都会被搜索。 // 数组长度是3 // fromIndex 是 -100 // computed index 是 3 + (-100) = -97 arr.includes('a', -100); // true arr.includes('b', -100); // true arr.includes('c', -100); // true
方法七、Jquery的$.each()
each() 方法为每个匹配元素规定要运行的函数。
var anArray = ['one','two','three'];$.each(anArray,function(n,value){if(value=="two"){...}});
JS中判断某个字符串/数组中是否包含某个值相关推荐
- linux中如何分割字符串数组中,关于bash:linux shell脚本:拆分字符串,将它们放入一个数组中,然后循环遍历它们...
本问题已经有最佳答案,请猛点这里访问. Possible Duplicate: Split string based on delimiter in Bash? 在bash脚本中,如何使用像;这样的分 ...
- linux中如何分割字符串数组中,[转+整理]linux shell 将字符串分割成数组
"传成老树白茶"献礼母亲节 邀市民品茗感受茶文化 5月8日下午,传成老树白茶巡回中国公益品鉴会第七十站,走进福州马尾区东方名城传成老树白茶文化馆. 本次品鉴会活动以 ...
- js中判断两个数组是否相等
js中判断两个数组是否相等的方法 1. 将两个数组转成字符串比较,但是发现他们只是顺序不相等也被当做不相等 [1,2,3].toString()== [3,2,1].toString() ----fa ...
- 判断字符串数组中的数字是否对称
分析以下需求,并用代码实现: (1)定义数字字符串数组{"010","3223","666","7890987",&qu ...
- 用js:字符串数组中每一项的长度。将字符串数组用 | 符号分割。有序数组插入排序插入数组。猴子选大王
1.字符串数组中每一项的长度 代码: <script> var arr = ['hello', 'world!', 'nice', 'to', 'meet', 'you'];var new ...
- 20190501-编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串...
题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow ...
- java中英文汉语混合排序_Java编程实现中英混合字符串数组按首字母排序的方法...
本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法.分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷 ...
- java中英文混合排序_Java编程实现中英混合字符串数组按首字母排序的方法
本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法.分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷 ...
- LeetCode4_编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ““。(解决方案:横向扫描、 纵向扫描 、分治 二分查找 、秀儿操作之排序比较头尾)
题目 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow&q ...
- JS根据指定值删除数组中的元素
解决问题: 1 .JS判断元素是否在数组内 2. JS根据指定值删除数组中的元素 要点:相当于jquery 的 $.inArray() 这个方法 原声js 如果想删除数组,有一个函数 splice ...
最新文章
- golang goroutine实现_golang技术随笔(二)理解goroutine
- 您为了什么而学?【一入红尘深似海 勿负天下有心人】
- MyBatis-Plus 快速开始及详测 SpringBoot 集成Mybatis-Plus
- 使用Python作为计算器
- ibatis调用mysql带OUT类型参数的存储过程并获取返回值
- tensorflow 2.X中构建模型的三种方式:Sequential, Functional, Subclassing
- 使用MurMurHash在Shodan平台上寻找钓鱼网站
- java jsp网页计算器_使用jsp+javaBean写一个网页计算器
- led闪烁和流水灯代码
- 单个索引和组合索引(联合索引)谁效率高
- php 输入经纬度查询位置,php 根据实际地址获取对应的经纬度
- 解决ValueError: Cannot run multiple SparkContexts at once; existing SparkContext
- 网站优化中SEO关键词密度到底多少属于合理?
- 【微电网优化】基于粒子群算法求解热电联供型微电网经济运行优化问题含Matlab源码
- svn: E170013: Unable to connect to a repository at URL ...
- 【豆瓣读书】高分python学习书籍推荐
- 成都web前端培训班
- SONY EVI-D70P
- 基于Java+SpringMVC+vue+element宠物管理系统设计实现
- Tableau培训学习笔记3:空间数据分析——科比投篮以及新冠肺炎分析(带数据)
热门文章
- 免费注册的域名.tk
- 学会使用box-sizing布局
- 【C语言】统计出文章的英文大写字母、小写字母、数字、空格以及其他字符的个数,共有3行文字,每行有80个字符
- Node.js 环境性能监控探究
- 戴钊《自我教练:迈向自我实现之路》读书笔记
- ora-01045 :user system lacks create session privilege; logon denied
- 如何快速上手制作高质量短视频?
- 灵敏度和特异度的置信区间怎么算?
- 征途服务器维护时间,《征途》服务器重组几大怪现象
- python实现isprime函数_Python语言的isPrime函数 - python