美文网首页
Javascript学习笔记——7.8 数组方法

Javascript学习笔记——7.8 数组方法

作者: IFELSE | 来源:发表于2018-05-31 09:18 被阅读0次

    join

    Array.join()将数组中的所有元素都转化为字符串拼接在一起,返回最后生成的字符串.

    var a = [1,3,'hello',-9]
    a.join() //"1,3,hello,-9",默认分割符是逗号
    Array.join(a) //"1,3,hello,-9"
    a.join('-') //"1-3-hello--9", 指定分割符
    

    reverse

    Array.reverse()方法将数组中的元素颠倒顺序,并返回数组.此方法更改原数组

    var a = [1,3,'hello',-9]
    var b = a.reverse()
    console.log(b) //[-9, "hello", 3, 1]
    console.log(a) //[-9, "hello", 3, 1]
    console.log(a===b) //true
    

    sort

    Array.sort()方法将数组中的元素排序,并返回排序后的数组.此方法更改原数组.

    • 默认排序规则是按照字母表顺序(必要时会将元素转换为字符串比较),undefined被排到数组尾部.
    • 想按照其他方式排序,可以给sort一个比较函数.比较函数有两个参数,如果返回值小于0,第一个参数将排在前面,如果返回值大于0,第一个参数排在后慢,如果返回值等于0,说明两个值相等排序无关紧要.
    var a = [1,9,18.-3,-2,55,-11]
    a.sort(function(x,y){return x-y})
    console.log(a) //[-11, -2, 1, 9, 15, 55]
    
    //不区分大小写排序
    var a = ['Hello','world','jack','Amazon','big','cat','Dog','snow','yellow','hello','Month']
    
    var compare = function(str1,str2){
        var a = str1.toLowerCase()
        var b = str2.toLowerCase()
        if(a<b) return -1
        if(a>b) return 1
        return 0
    }
    
    a.sort(compare)
    console.log(a) //["Amazon", "big", "cat", "Dog", "hello", "Hello", "jack", "Month", "snow", "world", "yellow"]
    

    contat

    Array.concat()方法创建并返回一个新数组,他的元素包括原始数组和所有的参数,不改变原数组.

    • 如果参数是数组,则把参数数组中的元素连接到原数组中
    • 嵌套数组会被直接看作元素
    var a = [1,2]
    var b = a.concat(3,4,5)
    console.log(a) //[1, 2]
    console.log(b) //[1, 2, 3, 4, 5]
    var c = a.concat([3,4,5])
    console.log(c) //1, 2, 3, 4, 5]
    var d = a.concat([3,4],[5,6])
    console.log(d) //[1, 2, 3, 4, 5, 6]
    var e = a.concat([3,4,[5,6]])
    console.log(e) // [1, 2, 3, 4, [5,6]]
    

    slice

    Array.slice()方法返回数组的一个切片(子数组).此方法不改变原数组.

    • 两个参数:返回从第一个参数开始(包括)到第二个参数(不包括)的元素组成的数组
    • 一个参数:返回从参数位置开始到最后的元素组成的数组.
    • 参数允许使用负数:-1是最后一个元素,-2是倒数第二个元素,以此类推.
    var a =[1,2,3,4,5,6,7,8]
    var b = a.slice(2,6)
    console.log(a) //[1, 2, 3, 4, 5, 6, 7, 8]
    console.log(b) //[3, 4, 5, 6]
    var c = a.slice(4)
    console.log(c) //[5, 6, 7, 8] 
    var d = a.slice(-3) 
    console.log(d) //[6, 7, 8]
    var e = a.slice(-3,-1)
    console.log(e) //[6, 7]
    

    splice

    Array.splice()方法可以在数组中插入或删除元素.此方法会修改原数组

    • splice方法删除原数组的部分元素,但返回值是被删除部分组成的数组
    • 第一个参数和第二个参数指定了数组中删除元素的起始位置和结束位置,如果省略第二个参数,从起始点到结尾的所有元素都将被删除
    • 第二个参数之后的所有参数,都被插入到原数组中。
    var a = [1,2,3,4,5,6,7,8,9]
    var b = a.splice(6) //删除位置6及以后的元素
    console.log(a)
     // [1, 2, 3, 4, 5, 6]
    console.log(b)
    // [7, 8, 9]
    var b = a.splice(3,2) //删除从位置3开始的两个元素
    console.log(a)
    // [1, 2, 3, 6]
    console.log(b)
    //[4, 5]
    var b = a.splice(2,1,'a','b',['hello','world']) //删除位置2的元素,并从该位置插入'a','b',['hello','wolrd']
    console.log(a)
    // [1, 2, "a", "b", ['hello','world'], 6]
    console.log(b)
    // [3]
    a.splice(2,0,'x') //只在位置2插入元素'x',不删除元素
    console.log(a)
    // [1, 2, "x", "a", "b",  ['hello','world'], 6]
    

    push和pop

    push和pop方法允许将数组当做栈来使用,两个方法都修改原数组。

    • push方法在数组末尾添加一个或多个元素,并增加数组长度
    • pop方法返回并删除数组的最后一个元素,并减小数组长度
    var stack = []
    stack.push(1)
    stack.push(2,3,4)
    console.log(stack)
    // [1, 2, 3, 4]
    var x = stack.pop()
    console.log(x)
    // 4
    console.log(stack)
    // [1, 2, 3]
    

    unshift和shift

    unshift和shift与push和pop类似,不过操作是在头部进行。unshift在头部添加若干元素,并把原来的元素后移。shift删除数组第一个元素并将其返回,后面的元素向前移动。

    var a = []
    a.unshift(1)
    // 1
    a.unshift(2,3,4)
    console.log(a)
    // [2, 3, 4, 1]
    var x = a.shift()
    console.log(x)
    // 2
    console.log(a)
    // [3, 4, 1]
    

    toString和toLocalString

    • toString将所有元素转换为字符串,然后用逗号连接后返回,与不适用参数的join()一样。
    • toLocalString是toString的本地化版本,它调用每个元素的toLocalString,然后用逗号连接返回。
    [1,2,3].
    

    相关文章

      网友评论

          本文标题:Javascript学习笔记——7.8 数组方法

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