JavaScript学习日记 : Day25 - Set

Set与Map不同再於Set没有key,是指有包含值的特殊集合,且每个值只能出现一次不能重复。

Set的方法:

  1. new Set(iterable) : 创建一个set,传入一个iterable的物件或是数组
  2. set.add(value) : 新增一个值,返回set本身
  3. set.delete(value) : 删除值,成功删除返回true,如果不存在这个value则返回false
  4. set.has(value) : 判断是否存在value,返回true/false
  5. set.clear() : 清空set
  6. set.size : 返回value的数量
let set = new Set();
let a = 123;
let b = 456;
let c = 789;

set.add(a);
set.add(b);
set.add(c);
set.add(a); // add方法会忽略重复的值,所以才说Set中的值都是唯一的

console.log(set.size); // 3

for(let item of set) {
    console.log(item); // 123 456 789
}

Set与Array转换

let array = [123,456,789]
let set = new Set();
let a = 123;
let b = 456;
let c = 789;
set.add(a);
set.add(b);
set.add(c);



// set转为array

let setToArray = [...set]; // 或者 Array.from(set);
console.log(setToArray)

// array转为set

let arrayToSet = new Set(array);
console.log(arrayToSet)

过滤元素

可以利用set中不会重复的特性,用来过滤array中重复的元素:

const array = [0,0,1,2,3,4,5,5,6,7];
const arrayToSet = new Set(array);
const uniqueArray = [...arrayToSet];

console.log(uniqueArray);

<<:  Day 24 | 在flutter 中串接 restful api - MobX的非同步操作

>>:  [day25] 建立订单 & 付款处理

零信任原则(Zero Trust principles)

-零信任概念的演变 防火墙区域是由物理网路边界隔离的网段。这是传统的城堡和护城河安全。区域是特定的...

[Day29]C# 鸡础观念- 物件导向(oop)~介面(Interface)

书同文,车同轨, 听说召唤恶魔时,需要与恶魔签订契约, 契约内容双方都得遵守, C#也拥有跟类别签订...

css 阴影

今天要来说说如何为一个div加上阴影,我们先来看看效果如何,我创造出一个橘色的方块,并且在他的css...

DAY02 - 前端工程师的工作日常

好像很多人对工程师的想像都是埋首写程序, 不用讲话,写程序就好了~ 但其实前端工程师真的不是只有写程...

[Day06] 团队系统设计 - 张力分析

某次参加站立会议,某位 PM 情绪激动的说:「我後天要跟客户回报进度了,但 A 同事这周请假三天,明...