美文网首页前端进击者
有趣的JavaScript原生数组函数

有趣的JavaScript原生数组函数

作者: LuckyJing | 来源:发表于2015-10-21 23:26 被阅读87次
    Array对象的一些基本信息

    查找.indexOf

    arr.indexOf(elem)
    我们实际中可能会写 a=='a' || a=='b' || a=='c',现在可以这么写。
    ['a','b','c'].indexOf(a)

    循环 forEach

    every 和 some

    some将会给数组里的每一个元素执行一遍回调函数,直到有一个回调函数返回true为止。如果找到目标元素,some立即返回true,否则some返回false。回调函数只对已经指定值的数组索引执行;它不会对已删除的或未指定值的元素执行。

    join 和 concat

    .join(分隔符)方法创建一个字符串,会将数组里面每个元素用分隔符连接。如果没有提供分隔符,默认的分隔符为“,”。.concat方法创建一个新数组,其是对原数组的浅拷贝(注意是浅拷贝哦)。


    栈方法 入栈push/unshift 出栈pop/shift

    队列方法 shift出队列 unshift 入队列

    用.shift或.pop能很容易遍历数组元素,并在操作过程中清空数组

    list = [1,2,3,4,5,6,7,8,9,10]
    while (item = list.shift()) {
        console.log(item)
    }
    

    模型映射.map

    map方法会按顺序给原数组中的每个元素(必须有值)都调用一次 callback函数.callback,每次执行后的返回值组合起来形成一个新数组. callback函数只会在有值的索引上被调用; 那些从来没被赋过值或者使用delete删除的索引则不会被调用。

    查询.filter

    filter对每个数组元素执行一次回调函数,并返回一个由回调函数返回true的元素组成的新数组。回调函数只会对已经指定值的数组项调用,类似SQL里where语句

    排序.sort(比较函数)

    传入一个function(a,b)的函数。

    • 如果a在b前,则返回值小于零(< 0)
    • 如果a和b是等价的,则返回值等于零(=== 0)
    • 如果a在b后,则返回值大于零(> 0)

    复制.slice

    返回的是浅拷贝
    Array.prototype.slice能被用来将类数组对象转换为真正的数组。

    Array.prototype.slice.call({ 0: 'a', 1: 'b', length: 2 })
    

    从参数列表中移除最初的几个元素,并将类数组对象转换为真正的数组。

    var values = Array.prototype.slice.call(arguments, 2)//从第二个参数开始
    

    相关文章

      网友评论

        本文标题:有趣的JavaScript原生数组函数

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