(九) Set和WeakSet数据结构

本节知识点

  • set的声明 参数只能是数组
  • set的增加 删 改 查
  • weakSet同set只不过存储的是对象。用的不多,所以不再介绍.

set的声明

set 尽管长得像数组但是它不是数组,他就是一堆没有键名只有键值的对象.内部不允许有重复,要是有则只显示一个,相当于去重。虽然set很像数组,但是它真的不是数组

类似下面的结构

{"哈哈","呵呵","嘿嘿"}

先说声明

let setArr = new Set([1,"222",{name:"哈哈"},1,"222"]);
console.log(setArr);
console.log(typeof setArr);

输出结果就是{1,"222",{name:"haha"}}

set的增加

  • 追加add:
let setArr = new Set([1,"222",{name:"哈哈"},1,"222"]);
setArr.add("前端开始");
console.log(setArr);

这样就在后面增加了一个前端开始

  • 删除delete
let setArr = new Set([1,"222",{name:"哈哈"},1,"222"]);
setArr.add("前端开始");
setArr.delete("222");
console.log(setArr);

这样就删除"222"这个选项

  • 查找
let setArr = new Set([1,"222",{name:"哈哈"},1,"222"]);
let result = setArr.has("222");
console.log(result);
console.log(setArr);

输出第一个结果就是true 第二个结果就是一个对象

  • 清空
let arr = [1,"aaa","bbb","ccc",4];
let setarr = new Set(arr);
setarr.clear();
console.log(setarr);

这样就是清空

  • set的循环 for ....of ...
let arr = [1,"aaa","bbb","ccc",4];
let setarr = new Set(arr);
for(let[index,value] of setarr.entries())
{
    console.log(value);
}

你可能感兴趣的:((九) Set和WeakSet数据结构)