美文网首页
关于ES6中数组的扩展

关于ES6中数组的扩展

作者: bc63f6792451 | 来源:发表于2017-07-20 14:24 被阅读0次

    1、Array.from()
    之前已经在深拷贝和浅拷贝里写过Array.from()的一个用法。即将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象,其中包括ES6新增的Set和Map结构。

    let ps = document.querySelectorAll('p');
    Array.from(ps).forEach(function (p) {
      console.log(p);
    });
    

    上面代码中,querySelectorAll方法返回的是一个类似数组的对象,只有将这个对象转为真正的数组,才能使用forEach方法。
    现在来说说其他用法:
    Array.from()还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理。

    Array.from(arrayLike, x => x * x);
    // 等同于
    Array.from(arrayLike).map(x => x * x);
    

    Array.from()的一个应用是,将字符串转为数组,然后返回字符串的长度。这样可以避免JavaScript将大于\uFFFF的Unicode字符,算作两个字符的bug。

    function countSymbols(string) {
      return Array.from(string).length;
    }
    

    相关文章

      网友评论

          本文标题:关于ES6中数组的扩展

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