Web前端之JavaScript中Set的妙用、并集、交集、差集、过滤、includes、filter


效果

SET_magicalEffect


描述

1、获取两个数组的并集、交集和差集
2、不能出现重复项,得到的结果是一个新数组


代码

const arr1 = [33, 22, 22, 55, 33, 11, 33, 5];
const arr2 = [22, 22, 55, 77, 88, 88, 99, 99];
// 并集
const union = [...new Set([...arr1, ...arr2])];

console.log('union并集: ', union);

// 交集
const cross = [...new Set([...arr1.filter((item) => arr2.includes(item))])];

console.log('cross交集: ', cross);

// 差集
const diff = [...new Set(union.filter((item) => !cross.includes(item)))];

console.log('diff差集: ', diff);

includes

MDN

includes方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回true,否则返回false。


w3school

includes方法确定数组是否包含指定的元素。
如果数组包含元素,则此方法返回true,否则返回false。
includes方法区分大小写。


示例

console.log([7, 3, 6].includes(3));
// true
console.log([7, 3, 6].includes(1));
// false

if([7, 3, 6].includes(1)) return 'hello world!';

<div v-if="[7, 3, 6].includes(3)"></div>

类型很重要,如果数组里的值与includes中的值类型不同,不起作用,因为includes使用的是全等比较。


filter

MDN

filter方法创建给定数组一部分的浅拷贝,其包含通过所提供函数实现的测试的所有元素。


w3school

filter方法创建数组,其中填充了所有通过测试的数组元素(作为函数提供)。
filter不会对没有值的数组元素执行该函数。
filter不会改变原始数组。


Set

MDN

Set对象允许你存储任何类型(无论是原始值还是对象引用)的唯一值。


W3SCHOOL

JavaScript的Set(集合)是一组唯一值的集合。
每个值只能在Set中出现一次。
Set可以容纳任何数据类型的值。

方法描述
new Set()创建新的 Set。
add()向 Set 中添加新元素。
delete()从 Set 中移除元素。
has()如果值存在则返回 true。
clear()从 Set 中移除所有元素。
forEach()为每个元素调用回调函数。
values()返回包含 Set 中所有值的迭代器。
keys()与 values() 相同。
entries()返回迭代器,其中包含 Set 中的 [value,value] 值值对。

属性描述
size返回 Set 中元素的数量。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值