ES6之数组.includes()方法

本文介绍了JavaScript中数组的includes()方法,该方法用于检测数组中是否包含特定元素,并提供了示例代码来展示如何使用此方法进行对象匹配。此外,还讨论了includes()与indexOf的区别,尤其是在处理NaN时的行为差异。

includes():表示某个数组是否包含给定的值,第一参数(必选)表示待检查的值,第二个参数(可选)表示搜索的起始位置。
和indexOf对比,indexOf进行了运算符的强对比,会导致对NaN的误判。

判断数组是否包含某个对象的方法

let Arr = [
    {name:'123'},
    {name:'wqew'},
    {name:'asjfif'}
],
Arr1 = {name:'wqew'}
Arr2 = {{name:'123'},
Arr3 = {name:'小明'}

console.log(Arr.includes(Arr1)) //true
console.log(Arr.includes(Arr2)) //true
console.log(Arr.includes(Arr3)) //false

ES6ECMAScript 2015)引入了大量新的数组方法,增强了数组的处理能力。其中一些重要的新增方法包括: 1. **find**: 这个方法返回数组中满足提供的测试函数的第一个元素,如果没有找到符合条件的,则返回undefined。 ```javascript const numbers = [1, 2, 3, 4, 5]; const result = numbers.find(item => item > 3); // 返回4 ``` 2. **findIndex**: 类似于`find`,但它返回满足条件的第一个元素的索引,找不到则返回-1。 ```javascript const index = numbers.findIndex(item => item == 4); // 返回3 ``` 3. **filter**: 通过测试函数过滤数组,返回一个新的只包含满足条件元素的新数组。 ```javascript const evenNumbers = numbers.filter(item => item % 2 === 0); // 返回[2, 4] ``` 4. **map**: 对数组的每个元素应用一个映射函数,并返回新数组,原数组不变。 ```javascript const squared = numbers.map(item => item * item); // 返回[1, 4, 9, 16, 25] ``` 5. **reduce**: 用于迭代数组并对每个元素应用一个归约函数,最终得到一个单一的累积值。 ```javascript const sum = numbers.reduce((total, num) => total + num, 0); // 返回15 ``` 6. **flat**: 展开嵌套的数组成扁平化的数组。 ```javascript const nestedArray = [[1, 2], [3, 4]]; const flattened = nestedArray.flat(); // 返回[1, 2, 3, 4] ``` 7. **fill**: 将指定值填充到数组从开始到结束的所有元素,支持指定起始和结束位置。 ```javascript numbers.fill(0, 2); // [1, 2, 0, 4, 5] ``` 8. **includes**: 检查数组是否包含某个元素,返回布尔值。 ```javascript const hasThree = numbers.includes(3); // 返回true ``` 这些方法使得处理数组更加方便高效,提高了代码的可读性和简洁度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值