JS : JavaScript 判断数组中是否包含某个元素(数字、字符串,含最简方法)
• 2024-08-29 • 文章类别: JavaScript • 阅读量:575
JavaScript 中很多情况下你需要判断在数组中是否存在某个数字或字符串元素,如果您要判断 JavaScript 数组中是否存在某个对象元素,请查看。
本文将介绍在 Javascript 中判断数组中是否存在某个数字或字符串元素的多个方法:
- 最简:js 使用 Array.includes(element) 方法判断数组包含元素
- js 使用 Array.indexOf(element) 方法判断数组包含元素
- js 使用 Array.some(callbackFn) 方法判断数组包含元素
- js 使用 Array.find(callbackFn) 方法判断数组包含元素
注意:
- Array.includes() 和 Array.indexOf() 两个方法传入的参数是 “元素”
- Array.some() 和 Array.find() 两个方法传入的参数是 “回调函数”
最简:js 使用 Array.includes() 方法判断数组包含元素
Array.includes()
方法是专门用来判断在 JS 数组中是否存在某个数字或字符串元素的方法,如果存在元素则返回 true
,不存在元素则放回 false
。
1、如下给出使用 Array.includes()
方法判断数组包含数字或字符串元素的示例:
const num_arr = [1, 2, 3];
console.log(num_arr.includes(2));
// 输出为: true
const str_arr = ['str1', 'str2', 'str3'];
console.log(str_arr.includes('str2'));
// 输出为: true
console.log(str_arr.includes('str4'));
// 输出为: false
2、使用 Array.includes()
方法可从特定的索引判断数组包含数字或字符串元素,如下示例:
const num_arr = [1, 2, 3];
console.log(num_arr.includes(2, 1));
// 输出为: true
const str_arr = ['str1', 'str2', 'str3'];
console.log(str_arr.includes('str1', 1));
// 输出为: false
解释说明:
- 第一个参数为元素,第二个参数为索引值
- 索引值从 0 开始,可以是负值
js 使用 Array.indexOf() 方法判断数组包含元素
Array.indexOf()
方法可以用来判断在 JS 数组中是否存在某个数字或字符串元素,如果存在元素则返回匹配到的第一个元素的索引值,如果不存在元素则放回 -1
。
1、如下给出使用 Array.indexOf()
方法判断数组包含数字或字符串元素的示例:
const num_arr = [1, 2, 3];
let index = num_arr.indexOf(2)
if (index === -1) {
console.log("不存在元素 2");
} else {
console.log("存在元素 2");
}
// 输出为: 存在元素: 2
const str_arr = ['str1', 'str2', 'str3'];
index = str_arr.indexOf('str4')
if (index === -1) {
console.log("不存在元素 str4");
} else {
console.log("存在元素 str4");
}
// 输出为: 不存在元素 str4
2、使用 Array.indexOf()
方法可从特定的索引判断数组包含数字或字符串元素,如下示例:
const num_arr = [1, 2, 3];
let index = num_arr.indexOf(2, 1)
if (index === -1) {
console.log("从索引 1 开始,不存在元素 2");
} else {
console.log("从索引 1 开始,存在元素 2");
}
// 输出为: 从索引 1 开始,存在元素 2
const str_arr = ['str1', 'str2', 'str3'];
index = str_arr.indexOf('str1', 1)
if (index === -1) {
console.log("从索引 1 开始,不存在元素 str1");
} else {
console.log("从索引 1 开始,存在元素 str1");
}
// 输出为: 从索引 1 开始,不存在元素 str1
解释说明:
- 第一个参数为元素,第二个参数为索引值
- 索引值从 0 开始,可以是负值
js 使用 Array.some() 方法判断数组包含元素
Array.some()
方法可以用来判断在 JS 数组中是否存在某个数字或字符串元素,但是需要传入一个回调函数,该方法会对数组中的每个元素调用回调函数,如果存在元素使回调函数返回 true
,则该函数返回 true
,否则返回 false
。
如下给出使用 Array.some()
方法判断数组包含数字或字符串元素的示例:
const num_arr = [1, 2, 3, 4, 5];
const str_arr = ['str1', 'str2', 'str3'];
/* 定义一个判断数组中是否包含某个元素的方法,
* @param {Array} arr
* @param {element} element
*/
function isExist(arr, element) {
// 使用箭头函数定义一个判断元素是否相等的函数
const isEqual = (arr_elm) => arr_elm === element;
return arr.some(isEqual);
}
console.log(isExist(num_arr, 4));
// 输出为: true
console.log(isExist(str_arr, "str1"));
// 输出为: true
console.log(isExist(str_arr, "str4"));
// 输出为: false
解释说明:
- 定义一个外层函数
isExist
用于判断数组是否包含元素,第一个参数为数组,第二个参数为元素 - 定义一个内部函数
isEqual
用于判断元素是否相等,相等返回true
,不相等返回false
- 执行
isExist
判断数组是否存在元素
js 使用 Array.find() 方法判断数组包含元素
Array.find()
方法可以用来判断在 JS 数组中是否存在某个数字或字符串元素,但是需要传入一个回调函数,该方法会对数组中的每个元素调用回调函数,如果存在元素使回调函数返回 true
,则该函数返回匹配到的元素,否则返回 undefined
。
如下给出使用 Array.find()
方法判断数组包含数字或字符串元素的示例:
const num_arr = [1, 2, 3, 4, 5];
const str_arr = ['str1', 'str2', 'str3'];
/* 定义一个判断数组中是否包含某个元素的方法,
* @param {Array} arr
* @param {element} element
*/
function isExist(arr, element) {
// 使用箭头函数定义一个判断元素是否相等的函数
const isEqual = (arr_elm) => arr_elm === element;
let index = arr.some(exist);
if (index) {
return "存在元素 " + element;
} else {
return "不存在元素 " + element;
}
}
console.log(isExist(num_arr, 4));
// 输出为: 存在元素 4
console.log(isExist(str_arr, "str1"));
// 输出为: 存在元素 str1
console.log(isExist(str_arr, "str4"));
// 输出为: 不存在元素 str4
解释说明:
- 定义一个外层函数
isExist
用于判断数组是否包含元素,第一个参数为数组,第二个参数为元素 - 定义一个内部函数
isEqual
用于判断元素是否相等,相等返回true
,不相等返回false
- 执行
isExist
判断数组是否存在元素
结语
本文介绍了在 Javascript 中判断数组中是否存在某个数字或字符串元素的多个方法,分别是:js 使用 Array.includes(element) 方法判断数组包含元素,js 使用 Array.indexOf(element) 方法判断数组包含元素,js 使用 Array.some(callbackFn) 方法判断数组包含元素,js 使用 Array.find(callbackFn) 方法判断数组包含元素。
0 评论