数组常用方法2

85 阅读2分钟
  • concat 拼接

    • 语法 数组1.concat(数组2,可以多个值或数组以逗号隔开)
    var arr1 = [1,2,3]
    var arr2 =[3,4,5]
    console.log(arr1.concat(arr2))//把arr2拼接在了arr1后边
    //拼接多个数组或值
    console.log(arr1.conact(arr2,7,[8,9]))
    //复制方式
    var arr3 =arr1.concat()//把arr1复制给arr3
  • join 把数组转换成字符串

    var arr =[1,2,3,4]
    console.log(arr.join("-")),把数组转换成字符串连接方式变成-1-2-3-4,默认逗号连接
    
  • slice 截取 (开始索引,结束索引)

    var arr = ["111","222","333","444","555"]
    console.log(arr.slice(0,2))//包前不包后,截取111,222
    //一个索引的话,就是开始,到结束
    console.log(arr.slice(2))//从333截取到555
    //复制方式
    var arr1=arr.slice()//就是把arr的值复制一份给arr1
    //slice可以截取负数
    console.log(arr.slice(2,-1))可以理解为从2开始截取到最后长度减一,也就是333444,或者是理解为最后为-1,倒数第二个为-2,依次类推
    
  • indexOf 返回我们要查找内容的索引值(从前往后查找)

    • -1查询不到
    • 返回查询元素的下标
    var arr = ["111","222","333","444","555","222"]
    console.log(arr.indexOf("222"))//返回值是数组的下标也就是1,如果查询不到返回-1
    //只能查询到一个
    //两个参数的时候
    console.log(arr.indexOf("222",2))//也就是从下标2开始查询222,返回5
    
  • lastIndexOf 返回我们要查找内容的索引值(从后往前查找)

    • -1查询不到

    • 返回查询元素的下标

      var arr = ["111","222","333","444","555","222"]
      console.log(arr.lastIndexOf("222"))//返回值是数组的下标也就是5,如果查询不到返回-1
      //只能查询到一个
      //两个参数的时候
      console.log(arr.indexOf("222",3))//也就是从下标3开始查询222,返回1
      

数组去重

  • 方法1

    var arr = [1,2,3,4,3,5,6,2,1 ]
    var arr1 = []
    for(arr1.indexOf(i)=== -1){
        arr1.push(arr[i])
    }
    console.log(arr,arr1)
    
  • 方法2 -利用对象

    var obj = {}
    for(var i =0;i<arr.length;i++){
        obj[arr[i]]="字符串"
    }
    console.log(obj)//输出1:"字符串",2:"字符串",3:"字符串",4:"字符串",5:"字符串",6:"字符串"
    var arr1 =[]
    for(var i in obj){
        arr2.push(i-0)
    }
    console.log(arr2)//输出123456
    
  • 方法3 new Set

    var ser1 =new Ser(arr)
    console.log(set1)//输出set结构1,2,3,4,5,6
    var arr1=Array.from(set1)//把set结构转换为数据结构