JavaScript数组includes方法详解:基础用法、局限性与替代方案

作者:代码拾荒时间:2026-10-31 14:59:54浏览:454

本文详解JavaScript数组的includes方法,用于判断数组是否包含指定元素。文章对比了includes与indexOf的区别,重点指出includes无法直接判断复杂对象数组,并推荐使用findIndex或find方法解决对象查找问题,帮助开发者选择正确的API。

JavaScript数组对象的includes方法

该方法用于检测数组中是否存在指定元素。若存在,返回true;若不存在,返回false。

let arr= [10,20,30,40];
        console.log(arr.includes(10));//true
        console.log(arr.includes(100));//false

此方法仅适用于简单数据类型。对于复杂类型,如包含对象的数组或二维数组,includes无法进行有效判断。

includes与indexOf的区别

includes()返回布尔值,直接指示元素是否存在;而indexOf()返回元素在数组中的索引位置。

如果仅需确认值是否存在而不关心其位置,建议使用includes()。

若需获取元素在数组中的具体索引位置,则必须使用indexOf方法。

关于数组API includes的注意事项

includes可用于判断数组是否包含特定值,或字符串是否包含子串。

但是注意

当数组元素为对象(如下方代码所示格式)时,includes无法正确判断。使用它进行对象比较将始终返回false。

按我个人理解

includes判断的是严格相等(即===)。由于对象是复杂数据类型,

每个对象在内存中拥有独立引用,因此对象与对象之间不可能完全相等(即使内容相同,仅满足==的部分比较)。

因此,使用includes判断对象数组时,每次都会返回false。

[
    {
        time: 12345,
        page: 2
    },
    {
        time: 12345,
        page: 2
    }
]

当然:

若需判断数组是否包含特定对象(或对象中的某个value值)

可以使用findIndex或find等API来实现。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

作者最新文章