JavaScript---数组的方法

栈方法:后进先出

push()可以接收任意数量的参数,把它们逐个添加到数组末尾,push方法返回修改后数组的长度。

var arr = ['hello', 'hi'];
arr.push(5, 6, 7, 8);
 console.log(arr); //["hello", "hi", 5, 6, 7, 8]

 pop() 从数组末尾移除最后一项,减少数组的length值,pop方法返回移除的项。

      var arr=['hello','hi']
        console.log(arr.pop()); //hi
        console.log(arr.pop()); //hello
        console.log(arr.pop()); //undefined
        console.log(arr); //[]

队列方法:先进先出

unshift()可以接收任意数量的参数,把它们逐个添加到数组前面,并返回修改后数组的长度

    var arr = ['zhangsan', 'lisi', 'wangwu'];
           console.log(arr.unshift('sunyi', 'wanger')); //5
           console.log(arr); //["sunyi", "wanger", "zhangsan", "lisi", "wangwu"]

shift()从数组前面移除一项,减少数组的length值,然后返回移除的项。

 var arr = ['zhangsan', 'lisi', 'wangwu'];
        console.log(arr.shift()); //zhangsan
        console.log(arr.shift()); //lisi
        console.log(arr.shift()); //wangwu
        console.log(arr);[]

重排序方法

reverse() 方法会反转数组项的顺序。

        var numarr = [1, 2, 3, 4, 5];
        console.log(numarr.reverse()); // [5, 4, 3, 2, 1]

sort() 方法按字母表升序排列数组项。

如果按其他方式而非字母表顺序进行数组排列,必须给sort方法传递一个比较函数做参数。

        var arr = ["sunyi", "wanger", "zhangsan", "lisi", "wangwu"];
        console.log(arr.sort()); //["lisi", "sunyi", "wanger", "wangwu", "zhangsan"]

sort()排序数字

   var arr = [12, 3, 569, 78, 0, -56, 1223, 11, 16, 13, 1];
        排序数字
        系统约定传入一个比较函数即可排序数字。
        function compare(value1, value2) {
            if (value1 < value2) {
                return -1;
            } else if (value1 > value2) {
                return 1;
            } else {
                return 0;
            }
        }
        console.log(arr.sort()); //[-56, 0, 1, 11, 12, 1223, 13, 16, 3, 569, 78]
        console.log(arr.sort(compare)); //[-56, 0, 1, 3, 11, 12, 13, 16, 78, 569, 1223]
        console.log(arr.sort(function(a, b) { //a,b代表数组项的值。
            return a - b;
        }));

结构方法

concat() 方法可以基于当前数组中的所有项创建一个新数组,参数可以是数组项或者数组。(不改变原数组)

        var arr = ['hello', 'hi'];
        var newarr = arr.concat(arr, arr, 'hehe', arr);
        console.log(arr);//['hello', 'hi']
        console.log(newarr);//['hello', 'hi','hello', 'hi',hehe,hello', 'hi]

        将多个数组拼接成一个数组。
        var arr1 = ['1', '2', '3'];
        var arr2 = ['a', 'b', 'c'];
        var arr3 = ['100', '200', '300'];
        console.log(arr1.concat(arr2, arr3)); //["1", "2", "3", "a", "b", "c", "100", "200", "300"]

slice() 方法它能够基于当前数组中的一或多个项创建一个新数组。可以接受一或两个参数,即要返回项的起始和结束位置,不包括结束位置。(不改变原数组) - 通过索引下标进行截取

第一个参数是开始的索引位置

第二个参数是结束的所有位置,不包括结束的位置

截取的方向一定是从前往后,但是索引位置为负数,从后往去数位置。

        var arr = ["a", "b", "c", "d", "e", "f", "g"];
        console.log(arr.slice()); //没有设置位置全部截取["a", "b", "c", "d", "e", "f", "g"]
        console.log(arr.slice(1)); //从1索引位置开始截取 ["b", "c", "d", "e", "f", "g"]
        console.log(arr.slice(1, 5)); //从索引1开始截取到索引5的位置,不包括5这个位置 ["b", "c", "d", "e"]
        console.log(arr.slice(1, -3)); //负数从后往前数 -1开始 ["b", "c", "d"]
        console.log(arr.slice(-7, -3)); //负数从后往前数 ["a", "b", "c", "d"]
        console.log(arr.slice(-3, -7)); //截取的方向一定是从前往后 []

splice()方法对数组进行删除、插入、替换,是最强大的数组方法,返回值是数组,(改变原数组)。

删除

       var arr = ["a", "b", "c", "d", "e", "f", "g"];
        console.log(arr.splice(2, 3)); //2开始的索引位置  3代表删除的长度  返回被删除的项组成数组["c", "d", "e"]
        console.log(arr); //["a", "b", "f", "g"]

插入:根据删除演变来的

        var arr = ["a", "b", "c", "d", "e", "f", "g"];
        console.log(arr.splice(2, 0, 'hehe', 'xixi', 'haha'));
        console.log(arr);//["a", "b", "hehe", "xixi", "haha", "c", "d", "e", "f", "g"]

替换:根据删除演变来的

        var arr = ["a", "b", "c", "d", "e", "f", "g"];
        console.log(arr.splice(2, 2, 'hehe', 'xixi')); //["c", "d"]
        console.log(arr); //["a", "b", "hehe", "xixi", "e", "f", "g"];

join()方法将数组转换成对应的字符串。参数就是连接符。

    var arr = ["a", "b", "c", "d", "e", "f", "g"];
        console.log(arr.join()); //'a,b,c,d,e,f,g'
        console.log(arr.join('#')); //'a#b#c#d#e#f#g'
        console.log(arr.join('')); //'abcdefg'
        console.log(arr.join('%')); //'a%b%c%d%e%f%g'
        console.log(typeof arr.join('%')); //string

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值