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) 方法判断数组包含元素。