• ES6小实验-复习数组


    ES6给数组添加了不少方法,我先把之前的方法总结一下:
    1.Array.isArray():检测数组

    var arr = ['a','b','c']
    var str = 'abc'
    console.log(Array.isArray(arr))//true
    console.log(Array.isArray(str))//false

    2.push():接收任意数量的参数,把它们逐个添加到数组末尾

    var arr = ['a','b','c']
    var item = arr.push('d','e')
    console.log(item)//5
    console.log(arr)//["a", "b", "c", "d", "e"]

     3.pop():从数组末尾移除最后一项

    var arr = ['a','b','c']
    var item = arr.pop()
    console.log(item)//c
    console.log(arr)//["a", "b"]

    4.shift():移除数组第一项并返回该项

    var arr = ['a','b','c']
    var item = arr.shift()
    console.log(item)//a
    console.log(arr)//["b", "c"] 

    5.unshift():能在数组前端添加任意个项并返回新数组长度

    var arr = ['a','b','c']
    var item = arr.unshift('d','e')
    console.log(item)//5
    console.log(arr)//["d", "e", "a", "b", "c"]

     6.reverse():反转数据项的顺序,注意它已经把原数组改变了

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

    7.sort():可以接收一个比较函数作为参数,比较函数接收两个参数,如果第一个参数应该位于第二个参数之前则返回一个负数,两参数相等则返回0,如果第一个参数应该位于第二个参数之后则返回一个正数

    var arr = [2,4,6,3,1]
    arr.sort(function(a,b) {
        return a - b
    })
    console.log(arr)//[1, 2, 3, 4, 6]

    8.concat():基于当前数组中的所有项创建一个新的数组,感觉字符串的操作方法类似

    var arr1 = ['a','b','c']
    var arr2 = ['d','e','f']
    var arr = arr1.concat(arr2)
    console.log(arr)//["a", "b", "c", "d", "e", "f"]
    console.log(arr1)//["a", "b", "c"]

     9.slice():截取原数组,构建一个新的数组,原数组保持不变

    var arr = ['a','b','c','d','e']
    var arr1 = arr.slice(2)
    var arr2 = arr.slice(2,3)
    console.log(arr1)//["c", "d", "e"]
    console.log(arr2)//["c"]

    10.splice():这恐怕是最强大的数组方法,增,删,改,操作全能

      (1)增,可以向指定位置插入任意数量的项,只需提供三个参数,起始位置,0(要删除的项数)和要插入的项

    var arr = ['a','b','c']
    arr.splice(1,0,'d','e')
    console.log(arr)//["a", "d", "e", "b", "c"]

      (2)删,提供两个参数,要删除的第一项的位置和要删除的项数

    var arr = ['a','b','c','d']
    arr.splice(1,2)
    console.log(arr)//["a", "d"]

      (3)改,结合上面两种方式,先删再增就是改

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

    11.indexOf(),lastIndexOf() 它们都接收两个参数,要查找的项和查找起点位置的索引(可选的),indexOf()从开始向后查找,lastIndexOf从末尾向前查找

    var arr = ['a','b','c','d','c','e']
    console.log(arr.indexOf('c', 3))//4
    console.log(arr.lastIndexOf('c', 3))//2

    12.every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true

    var num = [1,2,3,4,5,6]
    var everyResult = num.every(function(item, index, array){
        return (item > 0)
    })
    console.log(everyResult)//true

     13.filter():对数组中的每一项运行给定的函数,返回该函数会返回true的项组成的数组

    var num = [1,2,3,4,5,6]
    var filterResult = num.filter(function(item, index, array){
        return (item > 3)
    })
    console.log(filterResult)//[4, 5, 6]

    14.forEach():对数组中的每一项运行给定的函数,这个方法没有返回值

    var num = [1,2,3,4,5,6]
    num.forEach(function(item, index, array){
        console.log(item)//1,2,3,4,5,6
    })

    15.map():对数组中每一项运行给定的函数,返回每次函数调用的结果组成的数组

    var num = [1,2,3,4,5,6]
    var mapResult = num.map(function(item, index, array){
        return item * 2
    })
    console.log(mapResult)//[2, 4, 6, 8, 10, 12]

    16.some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true

    var num = [1,2,3,4,5,6]
    var someResult = num.some(function(item, index, array){
        return item > 5
    })
    console.log(someResult)//true

    17.reduce(),reduceRight():迭代数组的所有项,然后构建一个最终返回的值,reduce()从第一项开始,reduceRight()从最后一项开始

    var num = [1,2,3,4,5,6]
    var reduceResult = num.reduce(function(prev, cur, index, array){
        return prev + cur
    })
    console.log(reduceResult)//21
  • 相关阅读:
    File Types过滤Maven项目目录
    Idea中main方法不能正常运行
    《Effective C++》rule 02: Prefer consts, enums, and inlines to #defines
    《Effective C++》 rule 03: Use const whenever possible
    《Effective C++》rule 01: View C++ as a federation of languages
    洛谷B2001 入门测试题目
    SecurityRandom随机数生成
    Java垃圾回收(GC)机制详解
    如何在 Linux 上查找哪个线程cpu利用率最高
    win10自动更新关闭
  • 原文地址:https://www.cnblogs.com/fengz/p/6666007.html
Copyright © 2020-2023  润新知