美文网首页
技术复习日记day1

技术复习日记day1

作者: 龍太 | 来源:发表于2016-11-14 21:58 被阅读0次

    好吧 最近忙着跳槽面试 重新开始复习之前的知识点。7号那天听了小爝大神的live,有提到要写技术博客,所以这是个开始吧 希望自己坚持下去

    参考廖雪峰廖大的全栈教程,Mozilla开发者文档

    今日内容:
    for..in.. 循环
    例子:

    var arr = ["A","B","c"]
      for(var i in arr){
          alert(i);// 0,1,2
          alert(arr[i]);//"A","B","C"
    }
    

    之前遇到这个循环是在一个node.js模块里面解析键值对,我比较菜,没发现问题在这儿 。
    for in 循环遍历i的位置,就是这个键值结构的“键” 不过后来有看到阮一峰大神的ES6入门 ,建议以for of 循环来遍历,因为不论是for in 还是forEach 方法中途不可以跳出。

    还有一点,可以使用 hasOwnProperty()方法过滤掉对象的继承属性,切记

    map与set

    JS以{}这个来表示对象,但是有个规定,键的位置必须是字符串,其实这个位置别的类型也可以(廖大语)。所以ES6为了解决这个问题,引入了map这个新型数据结构,查找速度大大增加。我把Map结构联想成二维数组。

    具体操作如下:

    var m = new Map([["A",1],["B",2],["C",3]]);
    m.get("A");//1  获取键为"A"的值
    m.has("A");//true;
    m.delete("A");
    m.has("A");//false
    
    var m = new Map();//新建一个空Map;
    m.set('James',23);//添加
    
    //一个key对应一个值,所以多次对一个key复制,后边的值会被冲掉
    m.set('James',6);
    m.get('James');//6   这里真的不是黑詹姆斯....
    

    set与map 类似,是键集合。其实set更像是没有重复的数组。

      var  s = new Set();//空set
      var s = new Set([1,2,3,3,'3']);
     s //Set{1,2,3,'3'}
    //delete(key)
    s.delete('3');//Set{1,2,3}
    //add(key)
    s.add(4);
    //{1,2,3,4}
    

    所以可以使用set来给数组去重

    var items = new Set([1, 2, 3, 4, 5]);
    var array = Array.from(items);//Array.from
    方法可以将Set结构转为数组。
    ////////////////////////////////////////////////////
    function dedupe(array) { 
    return Array.from(new Set(array));
    }dedupe([1, 1, 2, 3]) // [1, 2, 3]
    

    相关文章

      网友评论

          本文标题:技术复习日记day1

          本文链接:https://www.haomeiwen.com/subject/glhkpttx.html