js数组常用的方法

2020-04-03  本文已影响0人  指尖跳动

1. Array.prototype.push(),向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变。

    var arr = [1,2,3,4]
    arr.push(5,6,7)

    console.log(arr) // [1, 2, 3, 4, 5, 6, 7]

2. Array.prototype.pop(),删除并返回数组的最后一个元素,若该数组为空,则返回undefined。原数组改变。

    var arr = [1,2,3,4,5,6,7]
    var del = arr.pop()

    console.log(del) // 7
    console.log(arr) // [1, 2, 3, 4, 5, 6]

3. Array.prototype.unshift(),向数组的开头添加一个或多个元素,并返回新的数组长度。原数组改变。

    var arr = [1,2,3,4,5,6,7]
    var res = arr.unshift(0)

    console.log(res) // 8
    console.log(arr) //[0,1,2,3,4,5,6,7]

4. Array.prototype.shift(),删除数组的第一项,并返回第一个元素的值。若该数组为空,则返回undefined。原数组改变。

    var arr = [1,2,3,4,5,6,7]
    var res = arr.shift()

    console.log(res) // 1
    console.log(arr) // [2, 3, 4, 5, 6, 7]

5. Array.prototype.concat(arr1,arr2...),合并两个或多个数组,生成一个新的数组。原数组不变。

    var arr = [1,2,3,4,5,6,7]
    var arr1 = ['a','b','c']
    var arr2 = ['x','y','z']

    var res = arr.concat(arr1,arr2)

    console.log(res) // [1, 2, 3, 4, 5, 6, 7, "a", "b", "c", "x", "y", "z"]
    console.log(arr) // [1, 2, 3, 4, 5, 6, 7]

6. Array.prototype.join(),将数组的每一项用指定字符连接形成一个字符串。默认连接字符为 “,” 逗号。

    var arr = [1,2,3,4,5,6,7]
    var str1 = arr.join()
    var str2 = arr.join('-')

    console.log(str1) // 1,2,3,4,5,6,7
    console.log(str2) // 1-2-3-4-5-6-7

7. Array.prototype.reverse(),方法将数组中元素的位置颠倒,并返回该数组。该方法会改变原数组。

   var arr = [1,2,3,4,5,6,7]
    arr.reverse()
    console.log(arr) // [7, 6, 5, 4, 3, 2, 1]

8. Array.prototype.sort(),对数组元素进行排序。按照字符串UniCode码排序,原数组改变。

①从小到大

    var sortNum = function(a,b){
        return a-b
    }
    arr.sort(sortNum)

②从大到小

 var sortNum = function(a,b){
        return b-a
    }
    arr.sort(sortNum)

③按照数组对象中的某个值进行排序

    var arr = [
        {name:"张三",age:18},
        {name:"李四",age:16},
        {name:"王五",age:20}
    ]

    function compare(param){
        return function sortAge(a,b){
            return a[param] - b[param]
        }
    }

    arr.sort(compare("age"))

9.  Array.prototype.map(function),原数组的每一项执行函数后,返回一个新的数组。原数组不变。(注意该方法和forEach的区别)。

10. Array.prototype.slice(start,end),从start开始,end之前结束,不到end;如果不给end值,从start开始到数组结束。start可以给负值,-1表示数组最后位置,-2表示倒数第二个,以此类推,顾前不顾后。返回一个新数组,原数组不变。

    var arr = [1,2,3,4]
    var a = arr.slice(-3,-1)

    console.log(a) // [2,3]

11. Array.prototype.splice(index,howmany,arr1,arr2...),删除元素并添加元素,从index位置开始删除howmany个元素,并将arr1、arr2...数据从index位置依次插入。howmany为0时,则不删除元素。原数组改变。

12. Array.prototype.forEach(function),用于调用数组的每个元素,并将元素传递给回调函数。原数组不变。(注意该方法和map的区别,若直接打印Array.forEach,结果为undefined)。

13. Array.prototype.filter(function),过滤数组中,符合条件的元素并返回一个新的数组, 原数组不变

    var arr = [1,2,3,4,5]
    var newArr = arr.filter( x => x>3 ) //[4,5]

14. Array.prototype.every(function),对数组中的每一项进行判断,若都符合则返回true,否则返回false。

15. Array.prototype.some(function),对数组中的每一项进行判断,若都不符合则返回false,否则返回true。

16. Array.prototype.reduce(function),reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

    var arr = [1,2,3,4,5]
    var total = arr.reduce((a,b) => a+b)

17. Array.prototype.includes(searchElement, fromIndex),includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。fromIndex可选。从该索引处开始查找 searchElement。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。如果计算出的array.length + fromIndex小于 0,则整个数组都会被搜索。默认为 0。

上一篇下一篇

猜你喜欢

热点阅读