文章目录

  • ES6基础4(数据结构)-学习笔记
    • set
    • map
    • symbol

ES6基础4(数据结构)-学习笔记

set

 //set 数据结构  类似数组 成员信息唯一性var s = new Set();//添加数据 add()s.add(1).add('2').add(2);//添加数据 另一种写法var s2 = new Set([1,2,3,4,5]);var arr = [1,2,3,4,5];var s3 = new Set(arr);//删除 delete()  按名称来删除  返回true falsevar s2 = new Set([1,'2',2,3,4,5]);s2.delete('2');//删除所有 clear()  没有返回值//has()  匹配是否存在 返回true false  按名称来匹配var s2 = new Set([1,'2','a',3,4,5]);//s2.has('2'); var a = 'a';if(s2.has(a)){console.log('ok')}else {console.log('error')};//属性  size  长度var s2 = new Set([1,'2','a',3,4,5]);console.log(s2.size)   //6//数组去重var s5 = [1,2,2,4,5,4,6,3,6,3,6,7,3,3,5,4,3,6,7,3];//es6var a = [...new Set(s5)];//es5function f(){var a = [];for(var i=0;i<s5.length;i++){if(a.indexOf(s5[i])==-1){ //没有匹配成功a.push(s5[i])}  };return a;}f();//es5 另一种方式function f2(){for(var i=0;i<s5.length;i++){for(var j=i+1;j<s5.length;j++){if(s5[i]==s5[j]){s5.splice(j,1);j--;}}};return s5;}f2();//类型转换//set 转 数组var s5 = [1,2,2,4,5,4,6,3,6,3,6,7,3,3,5,4,3,6,7,3];var a = [...new Set(s5)];var a2 = Array.from(new Set(s5))//扩展//求出大于100的数据且去重var arr = [20,32,23,15,63,543,24,26,3,266,34,246,242,22,123,123,266,246,345,234,123];//分析//1、求出大于100var a = arr.filter(item=>item>100);//2、去重var b = new Set(a);//3、类型转换//[...b]//Array.from(b)//简化var c = [...new Set(arr.filter(item=>item>100))];var c = Array.from(new Set(arr.filter(item=>item>100)));// var a = arr.filter(function(item,index){//     return item >100// });// var a = arr.filter(item=> item >100)//求二组数据的 并集  交集  差集var arr1 =[2,3,5,2,5,7,3,5,36,4];var arr2 = [8,9,4,1,2,3,7,3];//并集 且去重var a = [...new Set([...arr1,...arr2])];//交集//分析//var a = arr1.filter(function(item){//    return arr2.indexOf(item)!=-1;//   return new Set(arr2).has(item);//})var a = [...new Set(arr1.filter(item=>arr2.indexOf(item)!=-1))]; //法1var a = [...new Set(arr1.filter(item=>new Set(arr2).has(item)))]; //法2//差集var a = [...new Set(arr1.filter(item=>!new Set(arr2).has(item)))]; //法2

map

     //Map 类似于object  键值对  map的键是可以是其它的类型var m = new Map();//添加m.set('name','abc').set('id',1);var a = {msg:'abc'};m.set(a,'11111');m.get(a);  // 11111//方法和属性//  set();  //添加//  get();  //获取//  has();   //是否匹配//  delete();  //删除单个  m.delete("id")//  clear();  //删除全部//  size  //长度添加数据 另一种写法var m = new Map([['a',1],['b',2],['c',3]]);//循环  for...of 替代for ...in  forEach()//可循环是array  set  map  但不能是object// keys():返回键名的遍历器   m.keys()  //abc// values():返回键值的遍历器  m.values()  // 123// entries():返回键值对的遍历器for(var v of m.keys()){console.log(v)};for(var v of m.values()){console.log(v)}for(var [k,v] of m){console.log(v)}//类型转换//Object转数组var obj = {'a':1,'b':2,'c':3};//[a,b,c] [1,2,3]Object.keys(obj);   //es5   [a,b,c] Object.values(obj);   //es5   [1,2,3]//map转数组var m = new Map([['a',1],['b',2],['c',3]]);[...m.keys()] ;//["a", "b", "c"][...m.values()];[...m]; //[['a',1],['b',2],['c',3]]//map转为objectvar m = new Map([['a',1],['b',2],['c',3]]);var obj2 = {};for(let [k,v] of m){   //k=====a  b  c  | v====  1,2,3obj2[k] = v;  //obj2['a'] = 1 | obj2['b'] = 2};console.log(obj2)   //{a: 1, b: 2, c: 3}//object 转为  mapvar obj3 = {a: 1, b: 2, c: 3};var m2 = new Map();for(let k in obj3){m2.set(k,obj3[k])};console.log(m2)

symbol

     //symbol es6 引入的新的类型  表示独一无二的值//如果添加的属性名出现重复,如何保证属性名的唯一性,解决属性名的冲突var obj = {id:1,id:2,id:3,name:123};console.log(obj)   //{id:3,name:123}//声明var s = Symbol();console.log(s);//独一无二的值var s2 = Symbol();var s3 = Symbol();console.log(s2==s3);  //false//可以接受一个字符串作为参数   symbol的值var s2 = Symbol('name');  var s3 = Symbol('name');console.log(s2==s3); //false//symbol定义一个名称,可以通过名称来获取var x = Symbol.for('x');   var x2 =  Symbol('x');  Symbol.keyFor(x);Symbol.keyFor(x2)//实际的应用var o = {};var s4 = Symbol();o[s4] = 'abc';console.loe(o)//第二种写法var o = {[s4]:'xyz'}//demovar a = Symbol();var o ={[a] :100,a:200};o.a;  //200o['a'];//200o[a]; //100var _name = Symbol('name');var _age = Symbol();var o = {[_name]:200,[_age]:100,c:200,d:100};// o[_name];// o[_age];Object.keys(o)  //[c,d]//注意  Object.keys  for...in 不支持for(let k in o ){console.log(k)   //c,d}

ES6基础4(数据结构)-学习笔记相关推荐

  1. ES6基础教程一 学习笔记

    一.变量的声明 1.var 声明全局变量 在ES6中var用来声明全局变量. 2.let 声明局部变量 3.const 声明常量 二.变量的解构赋值 //1.数组赋值 let [a,b,c]=[1,2 ...

  2. 数据结构学习笔记(七):哈希表(Hash Table)

    目录 1 哈希表的含义与结构特点 1.1 哈希(Hash)即无序 1.2 从数组看哈希表的结构特点 2 哈希函数(Hash Function)与哈希冲突(Hash Collision) 2.1 哈希函 ...

  3. Python数据结构学习笔记——栈

    目录 一.栈的定义和特性 (一)栈的定义 (二)栈的反转特性 二.实现分析步骤 三.栈的Python实现代码 四.栈的应用 (一)匹配圆括号 (二)匹配符号 (三)模2除法(十进制转二进制) (四)进 ...

  4. 考研[*数据结构*]学习笔记汇总(全)

    文章目录: 一:预备阶段 二:基础阶段笔记 三:冲刺阶段笔记 四:各章节思维导图 五:题库 来源:王道计算机考研 数据结构 一:预备阶段 之前的数据结构笔记 数据结构--学习笔记--入门必看[建议收藏 ...

  5. 数据结构学习笔记(王道)

    数据结构学习笔记(王道) PS:本文章部分内容参考自王道考研数据结构笔记 文章目录 数据结构学习笔记(王道) 一.绪论 1.1. 数据结构 1.2. 算法 1.2.1. 算法的基本概念 1.2.2. ...

  6. 数据结构学习笔记(六):二叉树(Binary Tree)

    目录 1 背景知识:树(Tree) 2 何为二叉树(Binray Tree) 2.1 二叉树的概念与结构 2.2 满二叉树与完全二叉树 2.3 二叉树的三种遍历方式 3 二叉树及其遍历的简单实现(Ja ...

  7. 数据结构学习笔记(五):重识字符串(String)

    目录 1 字符串与数组的关系 1.1 字符串与数组的联系 1.2 字符串与数组的区别 2 实现字符串的链式存储(Java) 3 子串查找的简单实现 1 字符串与数组的关系 1.1 字符串与数组的联系 ...

  8. 数据结构学习笔记(四):重识数组(Array)

    目录 1 数组通过索引访问元素的原理 1.1 内存空间的连续性 1.2 数据类型的同一性 2 数组与链表增删查操作特性的对比 2.1 数组与链表的共性与差异 2.2 数组与链表增删查特性差异的原理 3 ...

  9. 数据结构学习笔记——顺序表的基本操作(超详细最终版+++)建议反复看看ヾ(≧▽≦*)o

    目录 前言 一.顺序表的定义 二.顺序表的初始化 三.顺序表的建立 四.顺序表的输出 五.顺序表的逆序输出 六.顺序表的插入操作 七.顺序表的删除操作 八.顺序表的按位和按值查找 基本操作的完整代码 ...

  10. Python数据结构学习笔记——链表:无序链表和有序链表

    目录 一.链表 二.无序链表 实现步骤分析 三.无序链表的Python实现代码 四.有序链表 实现步骤分析 五.有序链表的Python实现代码 结语 一.链表 链表中每一个元素都由为两部分构成:一是该 ...

最新文章

  1. SpringBoot学习平台
  2. 图像的放大与缩小(2)——双线性插值放大与均值缩小
  3. 毕业生必须知道:干部身份、三方协议、派遣证
  4. 【D3.V3.js系列教程】--(十四)有路径的文字
  5. Django 3.2.5博客开发教程:URL与视图函数
  6. SP10707 COT2 - Count on a tree II
  7. Android的sdk、api及工程目录说明
  8. LeetCode 775. 全局倒置与局部倒置(归并排序/二分查找/一次遍历)
  9. 谷歌官方推出 TensorFlow 中文视频:机器学习从零到一
  10. 通过json动态创建控制器
  11. Codeforces Round #326 (Div. 2) B. Pasha and Phone C. Duff and Weight Lifting
  12. IIS出现问题时修改配置文件的几项说明
  13. 【Auto.JS】入门宝典—Auto.JS开发使用笔记(随笔和使用心得)
  14. 进销存系统收费标准是怎样的?
  15. 用计算机画画的意义,浅谈电脑绘画在美术教学中的意义.doc
  16. 声纹识别中pooling总结
  17. mongoDB百度脑图总结
  18. python写文字方法_初学Python-简单的在图片上加文字
  19. Oracle 常用工具和问题分析
  20. 【CSS3 属性】CSS 3 transform:scale 与 transform:translate 作用在同一div元素,导致元素位置偏离

热门文章

  1. Kafka学习 之 第一个例子(一)
  2. hadoop3.0.0 源码阅读之一:IPC Client部分
  3. Leecode05. 最长回文子串——Leecode大厂热题100道系列
  4. 【已解决】IDEA 配置tomcat后,javaweb项目报404
  5. [leetcode]83.删除排序链表中的重复元素
  6. count(id)count(1)count(*)count(字段)
  7. 苹果mac电脑修改并快速linux网络配置
  8. Linux进程和计划任务管理(详细图例)
  9. apriori算法代码python_Apriori算法的Python实现
  10. python property方法_Python——property(使一个方法看起来就像类属性一样)