码迷,mamicode.com
首页 > 其他好文 > 详细

ES6中对Set解析

时间:2019-10-30 18:14:20      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:console   includes   lte   集合   这一   rabl   width   个数   返回值   

1.set基础

(1)set类似数组 只有值value 没有键key

(2)有iterable接口:数组,arguments,元素集合,SET,MAP,字符串

(3)会默认去重
  function fn(){
            console.log(new Set(arguments))
        }
        fn(1,2,3,4);

答案:

技术图片

 add 增加 返回值增加后的set实例(可以实现链式写法)

参数一次加一个

let set1=new Set([1,2,"哈哈",null,NaN,true]);
        console.log(set1.add(10).add(100));
答案:
技术图片
delete 删除 返回值是 true/false 如果里面有这一项就删除成功,没有此项就删除失败。
let set1=new Set([1,2,"哈哈",null,NaN,true]);
        console.log(set1.add(10).add(100));
    console.log(set1.delete(1));
clear 清空 没有返回值 undefined,没有参数 
 let set1=new Set([1,2,"哈哈",null,NaN,true]);
   console.log(set1.clear());
        console.log(set1);
has 判断有没有此项 返回值true/false
   let set2=new Set([1,2,"哈哈",null,NaN,true]);
        console.log(set2.has(NaN));
forEach()遍历  
currentValue  必需。当前元素
index  可选。当前元素的索引值。
arr  可选,当前元素所属的数组对象
set2.forEach((item,index,input)=>{
console.log(item,index,input);
//Set 实例只有value没有key
//item,index:当前项 //input:当前实例
})
 
 
  for(let [item,val] of set2.entries()){
            //item,val 全是value值
            console.log(item,val);
        }
 
 技术图片

2.代码练习

   let arr1=[1,3,5,7,8,9];
        let arr2=[2,4,6,7,8,9];
        //并集
        function add(arr1,arr2){
            return [...new Set([...arr1,...arr2])]
        }

[1, 3, 5, 7, 8, 9, 2, 4, 6]

let arr1=[1,3,5,7,8,9];
    let arr2=[2,4,6,7,8,9];
        //交集
        function same(arr1,arr2){
            return arr1.filter(item=>arr2.includes(item))
        }
        console.log(same(arr1,arr2));

[7, 8, 9]

    let arr1=[1,3,5,7,8,9];
        let arr2=[2,4,6,7,8,9];
//差集  (并集-交集)
//includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回true,否则false
        function diff(arr1,arr2){
           return add(arr1,arr2).filter(item=>
                !same(arr1,arr2).includes(item))
        }
        console.log(diff(arr1,arr2));

[1, 3, 5, 2, 4, 6]

 
 

ES6中对Set解析

标签:console   includes   lte   集合   这一   rabl   width   个数   返回值   

原文地址:https://www.cnblogs.com/linxim/p/11766022.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!