new Set() 学习介绍与对比 | 您所在的位置:网站首页 › 12349下载 › new Set() 学习介绍与对比 |
介绍:Set es6新推出的一种数据结构,他类似于数组,但是他的成员值都是唯一的,没有重复。 注意:唯一值表示数据类型相同 Set函数可以接收的参数可以是一个数组(或类似于数组的结构对象)作为参数用来初始化。 定义: let list = new Set();实例属性:size 返回当前Set的长度 实例方法: add(value):添加某个值,返回Set结构本身。 delete(value):删除某个值,返回一个布尔值,表示删除是否成功。 has(value):返回一个布尔值,表示该值是否为Set的成员。 clear():清除所有成员,没有返回值对比set 和 Array的优势域劣势 let set = new Set(); let arr = new Array(); //增: set.add({'a': 1}); arr.push({'a': 1}); //查: console.log(set.has({'a': 1})); // false arr.find(item=>item.a); // {'a': 1} //改: set.forEach(item=>item.a?item.a=2:''); arr.forEach(item=>item.a?item.a=2:''); //删: set.forEach((item)=>item.a?set.delete(item):""); arr.splice(arr.findIndex(item=>item.a),1); console.log(set); console.log(arr);set map object 对比 优势与劣势 let item = {a: 1}; let set = new Set(); let map = new Map(); let obj = new Object(); //增 set.add(item); map.set('a', 1); obj['a'] = 1; //查 set.has(item);// true map.has('a');// true 'a' in obj;// true //改 item.a = 2; map.set('a', 2); obj['a'] = 2; //删 set.delete(item); map.delete('a'); delete obj['a']; console.log(set); console.log(map); console.log(obj);总结:在开发过程中,涉及到数据结构,能使用Map 不使用Array 尤其是复杂的数据结构 ,如果对于数组的存储考虑唯一性使用Set,优先使用map 如果要求数据储存的唯一性使用Set 放弃使用Array。 |
CopyRight 2018-2019 实验室设备网 版权所有 |