js数组的常用方法

131 阅读4分钟

js数组的常用方法

 //push()像数组的末尾添加一个或多个元素,并返回数组的新的长度
   var a = ["周杰伦", "刘德华", "邓紫棋"]
   var b = a.push("周杰伦22", "刘德华22", "邓紫棋22")
   console.log(a) //["周杰伦", "刘德华", "邓紫棋","周杰伦22", "刘德华22", "邓紫棋22"]
   console.log(b) //6
 //pop()可以删除数组的最后一个元素,并将被删除的元素作为返回值返回
  var c = ["邓紫棋", "周杰伦", "刘德华"]
  var d = c.pop()
  console.log(c) //["邓紫棋", "周杰伦"]
  console.log(d) //  刘德华
 //unshift()它能在数组前端添加任意个项并返回新数组的长度
  var e = ["1", "2", "3"]
  var f = e.unshift("4", "5")
  console.log(e) // ["4", "5", "1", "2", "3"]
  console.log(f) // 5
 //shift可以删除数组的第一个元素,并将被删除的元素作为返回值返回
  var p = ["1", "2", "3"]
  var o = p.shift()
  console.log(p) // ["2", "3"]
  console.log(o) // 1
 // slice(),可以用来从数组提取指定元素,该方法不会改变元素数组,而是将截取到的元素封装一个新的数组中返回
   /*
    参数
  1.截取开始的位置的索引,包含开始索引
  2.截取结束的位置的索引,不包含结束索引
     第二个参数可以省略不写,此时会截取从开始索引往后的所有元素
     索引可以传递一个负值,如果传的是个负值,则从后往前计算
        */
        var arr = [1, 2, 3, 4, 5, 10];
        var reac
        react = arr.slice(4)
        console.log(react) = arr.slice(1, 4)
 /*
 splice(index,删除的数量,切换的新值) 可以用于删除数组中的指定元素,里面三个参数
 使用spclice()会影响到原数组,会将指定元素从原数组中删除
 并将被删除的元素作为返回值返回
 参数
   第一个,表示开始位置的索引
   第二个表示删除的数量,
   第三个及以后,可以传递一些新的元素,这些元素将会自动插入到开始位置索引前面
 */
 var ty = arr.splice(2, 2, "周杰伦", "邓紫棋")
  console.log(ty)
  console.log(arr) 
//filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条
//件的所有元素。 filter() 不会对空数组进行检测。 filter() 不会改变原始数组。
//语法: array.filter(function(currentValue, index, arr), thisValue)
  //currentValue:当前元素的值
  // index:当前元素的索引值
  //arr:当前元素属于的数组对象
  // thisValue:对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
  //如果省略了 thisValue, "this"
  //的值为 "undefined"
  //案列:返回数组ages中所有元素都大于输入框指定数值的元素
  //利用 filter 遍历出所有偶数:
  let arr = [56, 15, 48, 3, 7];
  let newARR = arr.filter(function(currentValue, index, arr) {
    return currentValue % 2 === 0
   })
 console.log(newARR) //56,48
   //concat()可以连接两个或多个数组,并将新的数组返回,该方法不会对原数组产生影响
     var arr = ["周杰伦", "刘德华", "邓紫棋"]
     var arr2 = ["爱钱", "爱财", "爱美女"]
     var arr3 = arr.concat(arr2)
     console.log(arr)
     console.log(typeof arr)
     console.log(arr3)
     console.log(typeof arr3)
  //2.join()该方法可以将数组转换魏一个字符串 ,类似的方法还有toString()
  //该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回
  //在join()中可以指定一个字符串,作为参数,这个字符串将会称为数组中的元素的连接符
  //如果不指定连接符,则默认使用“,”号作为连接符
    var arr4 = arr.join("&&&")
    console.log(arr4)
    console.log(typeof arr4) //string
//reverse() 重排序方法,会反转数组的顺序
   var arr = ["周杰伦", "刘德华", "邓紫棋"]
   var arr5 = arr.reverse()
   console.log(arr5) //["邓紫棋", "刘德华", "周杰伦"]
/*
        sort() 根据unicode编码来排序
        所以对数字进排序时,可能会的到错误的结果
        我们可以自己看来指定排序的规则
        我们可以在sort()添加一个回调函数,来指定排序规则
        回调函数中需要定义两个形参
        浏览器将会分别使用数组中的元素作为实参去调用回调函数
        使用哪个元素调用不确定,但是肯定的是在数组中a一定在b前面,
        浏览器会根据回调函数的返回值来决定元素的顺序
        如果返回一个大于0的值,则元素会交换位置
        如果返回一个小于0的值。则元素位置不变
        如果返回一个0,则认为两个元素相等,也不交换位置
        sort() 如果需要升序排序,返回a-b
        如果需要降序排列。则返回B-a 
      */
        var a = [1, 2, 3, 5, 4, 12, 11]
        a.sort(function(a, b) {
            if (a > b) {

                return 1

            }
            if (a < b) {

                return -1
            } else {
                return 0

            }
        })
        console.log(a) //1, 2, 3, 4, 5, 11, 12