首先先来看一下有哪些方法arr为要操作的数组

    作用 方法名 返回值 说明 补充
    转字符串 arr.toString() 字符串 将arr转为字符串类型 不能转换Object类型
    未修改原数组
    转字符串 arr.join(separator) 字符串 将arr转为字符串类型
    separator为拼接的符号
    同上
    未修改原数组
    从后删除 arr.pop() 被删除的项 将arr的最后一项删除 修改原数组
    从后添加 arr.push(item) 新数组长度 将item添加到arr最后一位 修改原数组
    从前删除 arr.shift() 被删除的项 将arr的首项删除,其余下标前移 修改原数组
    从前添加 arr.unshift(item) 新数组长度 将item添加到arr首位,其余下标后移 修改原数组
    插入 arr.splice(index,length,…item) 删除项目的数组 从index位插入…item参数,并且删除index后length位 修改原数组
    连接 arr.concat(arr2) 连接后的新数组 arr后连接arr2 参数不固定
    未修改原数组
    裁剪 arr.slice(start, end)
    arr.slice(start)
    裁剪出的数组 从arr中裁剪出[start,end)数组,只有一个参数时,从start到末尾 未修改原数组
    接受负参数
    排序 arr.sort(func) 排序后的数组 不传参数时,会按照ASCLL的顺序排列,只比较一位。
    传参数时,需要传递一个函数,相邻位置两两比较,根据返回结果正负决定是否交换
    修改原数组
    遍历 arr.forEach(func) 遍历arr数组,接收一个处理函数func,该函数接受3个参数ele(项目值)、index(项目索引)、self(项目本身) 未修改原数组
    生成数组 arr.map(func) 新的数组 将arr进行遍历,通过处理函数func,返回值为新数组的每项,func接受3个参数(同上) 未修改原数组
    过滤数组 arr.filter(func) 过滤后的数组 将arr进行遍历,通过处理函数func,返回值为true则保留当前项,func接受3个参数(同上) 未修改原数组
    叠加 arr.reduce(func) 循环最后一次的返回结果 将arr进行遍历,通过处理函数func,返回值为下一次的ret值,func接受4个参数ret(上一次循环的返回值)、ele(项目值)、index(项目索引)、self(项目本身)

    示例数组
    var arr = [8,4,6,5,2,1]

    1、toString()

    • 将arr转为字符串

    var res = arr.toString() //res结果为"8,4,6,5,2,1"
    2、join()

    • 将arr通过”-“连接成字符串

    var res = arr.join("-") //res结果为"8-4-6-5-2-1"
    3、pop()

    • 将arr最后一删除项

    var res = arr.pop() //res结果为1
    返回被删除的项
    4、push()

    • 给arr末尾添加10

    var res = arr.push(10) //res结果为7
    返回新的数组长度
    5、shift()

    • 将arr首项删除

    var res = arr.shift() //res结果为8
    返回被删除的项
    6、unshift()

    • 给arr首位添加10

    var res = arr.unshift(10) //res结果为7
    返回新的数组长度
    7、splice()

    • 将arr中4,6,5替换为四,六,五

    var res = arr.splice(1,3,"四","六","五") //res结果为[4,6,5]
    返回裁剪的数组
    8、concat()

    • arr连接[6,6,6]

    var res = arr.concat([6,6,6]); //res结果为 [8, 4, 6, 5, 2, 1, 6, 6, 6]
    返回新的数组

    • arr连接”好好学习”和”天天向上”

    var res = arr.concat("好好学习","天天向上") //res结果为[8, 4, 6, 5, 2, 1,"好好学习","天天向上"]
    9、slice()

    • 截取后3位置

    var res = arr.slice(-3) //res结果为[5,2,1]

    • 截取前两位

    var res = arr.slice(0,2) //res结果为[8,4]
    10、sort()

    • 将arr升序排列

      1. var res = arr.sort(function(a,b){
      2. return a - b
      3. // 8 - 4 > 0 true交换
      4. })
      5. //res结果为[1,2,4,5,6,8]和arr一样

      11、forEach()

    • 打印数组每一项

      1. arr.forEach(function(ele,index,self){
      2. console.log(ele)
      3. })

      12、map()

    • 得到一个数组,每一项值为arr数组+2所得

      1. var res = arr.map(function(ele,index,self){
      2. return ele + 2;
      3. })
      4. //res结果为[10,6,8,7,4,3]

      13、filter()

    • 过滤掉arr中的单数

      1. var res = arr.filter(function(ele,index,self){
      2. return (ele%2) === 0;
      3. })
      4. //res结果为[8, 4, 6, 2]

      14、reduce()

    • 求arr中所有数组之和

      1. var res = arr.reduce(function(ret,ele,index,self){
      2. return ret += ele;
      3. },0)
      4. //res结果为26
      5. //0为设置初始的ret值

      常用的操作都列举出来了,以上仅代表个人的理解,欢迎各位玩家留言指正