set和map

set

ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。

var s = new Set();

set 使用object。is来判断两个值是否相等 但是专门针对0和-+0做了处理 在set里面默认他们是相等的

var a = new Set() 
a.add(-0);
  a.add(+0);
 console.log(a)//Set(1){0}

增加 s.add(数据)添加一个 添加一个数据到集合的末尾 如果这个数字原本就存在 那么 就不进行任何操作

var s = nwe Set();
s.add(1);
s.add(2);
console.log(s)//Set(2) {1, 2}

查询 s.has(数据) 判断set集合中是否存在查询的数据,返回值为true和false

console.log(s.has(1))//true

删除 delete(数据) 对集合里的数据匹配删除成功就返回true 失败就放回false

var c = new Set()
c.add(1);
c.add(2);
console.log(c.delete(1)); true 表示匹配到数据 删除成功
console.log(c.delete(3)); false 表示没有匹配到数据 删除失败
console.log(c)//set(1){2}

清空 clear()里面不用传参数 清空整个集合

var c = new Set()
c.add(1);
c.add(2);
console.log(c.clera())//Set(0) {}

size 属性是获取set集合里面的所有元素的个数 基本上数组的长度类似

​ 但是size是自读属性 不能重新赋值 如果重新赋值 不会起任何作用 也不会报错

console.log(z.size);

set集合的遍历

使用for-of进行遍历 返回的item是每一项的值

var s = nwe Set();
s.add(1);
s.add(2);
for (const item of s) {
            console.log(item);//1,2
        }

for each方法 foreach方法是集合的实例化方法但是set集合没有下表所有index和item都表示元素,s表示原数组

var s = nwe Set();
s.add(1);
s.add(2);
s.forEach((item, index, s) => {
            console.log(item);//1,2
            console.log(index);//1 2
            console.log(s);/Set(2) {1,2}
        })

filter方法 返回值是一个新数组 是用来检查数组中的元素是否符合某一条件 把符合条件的过滤出来,这个方法不会改变原数组

var arr = [1,2,3,4,5,6,7,8]
 var res =arr.filter(function(item,index,self){
            console.log(item);//元素
            console.log(index);//元素下标
            console.log(self);//arr数组
            return item % 2 ==2;
        })
        console.log(res);//[2,4,6,8]

2map

一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值。

一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值。

map用set方法来设置键和value

m.set(o."content")

map用set方法来获取属性value

m.get(o)//content

Map 的迭代

for…of

var myMap = new Map();
myMap.set(0, "zero");
myMap.set(1, "one");
 

for (var [key, value] of myMap) {
  console.log(key + " = " + value);
}
//因为结构赋值的原因 元素与属性值相对应
/*
0 = zero
 1 = one*/
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页