ES6(Set)

来源:互联网 发布:维也纳大学 知乎 编辑:程序博客网 时间:2024/06/05 01:31

1.Set类似于java中的set ,比较简单,直接看代码就好了

var arr=[1,2,3,4,4]var st=new Set(arr);console.log(st) //Set { 1, 2, 3, 4 }  不允许数字重复

2.Set其他方法和属性

let st = new Set();st.add({name:'ggb',age:28})console.log(st) //Set { { name: 'ggb', age: 28 } }var result =st.delete({name:'ggb',age:28})console.log(result) //false 删除的不是一个st.add(4)console.log(st.has(4))console.log(st)//Set { { name: 'ggb', age: 28 }, 4 }console.log(st.size)//2st.clear()//console.log(st)//Set {}

3.Set  遍历

let st = new Set(['name==ggb','age==28','sex==male']);var keyI = st.keys();for( i of keyI){console.log(i)//name==ggb               // age==28                // sex==male}

set.keys 与set.values 功能此时一样

let st = new Set(['name==ggb','age==28','sex==male']);var valueI = st.values();for( i of valueI){console.log(i)//name==ggb               // age==28                // sex==male}


set.entries

let st = new Set(['name==ggb','age==28','sex==male']);var entryI = st.entries();for(let o of entryI){console.log(o)// [ 'name==ggb', 'name==ggb' ]              // [ 'age==28', 'age==28' ]              // [ 'sex==male', 'sex==male' ]      }

let st = new Set(['name==ggb','age==28','sex==male']);for(let v of st){console.log(v)//name==ggb               // age==28                // sex==male}
Set 本身就继承了iterator接口,所以可以用 for  of 遍历
console.log(Set.prototype[Symbol.iterator]===Set.prototype.values) //true

另外,虽然NaN===NaN 为false ,但是Set.add(NaN)只能增加一个


4.Map 与Set一样。只有一个注意点

var obj={sex:'male'}var map= new Map()map.set('name','ggb')map.set('age','26')map.forEach(function(k,v){console.log(this.sex,k,v)//male ggb name //male 26 age},obj)



原创粉丝点击