zoukankan      html  css  js  c++  java
  • es6中新增数组的方法

    1. Array.from

    这个东西就是把一些集合,或者长的像数组的伪数组转换成真的数组,比如arguments,js选择器找到dom集合,
    还有对象模拟的数组
    var obj = {
    '0' : 1,
    length : 1
    }
    Array.from(obj / arguments / 伪数组) //返回的是一个数组
    [].slice.call(arguments, 0) //这种方式根from方法是一样的效果

    //Array.from还有第二个参数,是一个回掉函数,功能类似map
    Array.from( [1, 2, 3], item => item * 2 )
    

    2. Array.of

    Array.of(1, 2, 3, 4)    //把参数合并成一个数组返回,如果参数为空,则返回一个空数组
    

    3. copyWithin

    //这个东西用的不多,但是很有意思
    //首先,参数有3个
    //1: 被替换的起始位置   2: 选取替换值的起始位置   3: 选取替换值得结束位置
    let arr = [1, 'c', 'd', 'a', 'b'];  //假如我想把a,b替换到1的位置
    arr.copyWithin(0, 3, 5)   // ["a", "b", "d", "a", "b"]
    

    4. find/findIndex

    //find  返回数组中第一个符合条件的元素, findIndex返回索引
    [1, 2, 3, 4, 5].find(function(item){
        return item > 3
    })
    

    5. fill

    //功能一: 字面意思填满,实际功能就是把数组中的每一个元素替换成指定值
    let arr = [1, 2, 3, 4]
    arr.fill(5)        //arr全变成了5
    
    //功能二:指定范围替换,这功能似曾相识啊
    arr.fill(6, 1, 3) //使用6 替换数组中 下表为1-3范围的值, 范围是下标>=1 && <3 的位置。
    //猛的一看以为功能和splice一样呢,又去巩固了一下。splice是删除某一个元素,然后增加指定的个数,并且它第一个参数是下标起点,第二个参数是个数,而不是结束下标。
    
    //扩展
    [].fill.call( { length : 3 }, 4)  //结果为以为是数组,每个元素是4,结果返回的竟然还是对象。。。
    

    6. entries/keys/values

    let arr=['a', 'b', 'c']
    for(let key of arr.keys()){}                     //取键
    for(let value of arr.values()){}                //取值;不能直接使用,有兼容性问题,甚至谷歌
    for(let [key, value] of arr.entries()){}       //都取
    

    7.inludes

    var a = function(){}
    [1, 2, 3, 4, a].includes(a)    //true
    [1, 2, 3, 4, NaN].includes(NaN)    //true
  • 相关阅读:
    Haskell语言学习笔记(38)Lens(1)
    Haskell语言学习笔记(37)RWS, RWST
    Haskell语言学习笔记(36)Data.List.Zipper
    Haskell语言学习笔记(35)Contravariant
    编程漫谈系列(4)协变(covariance),逆变(contravariance)与不变(invariance)
    Boost.Coroutine2:学习使用Coroutine(协程)
    C++17尝鲜:类模板中的模板参数自动推导
    bzoj 2797 [Poi2012]Squarks 枚举一个,推出所有
    FWT 学习笔记
    A* k短路 学习笔记
  • 原文地址:https://www.cnblogs.com/sunheng/p/7852744.html
Copyright © 2011-2022 走看看