JavaScript 数组操作方法汇总

javaScript里非常重要的一个知识点,就是数据的操作,也就是增删改查,说到增删改查,那就要说说数组的操作了,因为大部分情况下,后台返回的数据都是数组,所以我来总结一下一些数组操作的方法,如有遗漏,后续补充:

1 arr.push() 从后面添加元素,返回值为添加完后的数组的长度

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

2 arr.pop() 从后面删除元素,只能是一个,返回值是删除的元素

let arr = [1,2,3,4,5]
console.log(arr.pop())     // 5
console.log(arr)  //[1,2,3,4]

3 arr.shift() 从前面删除元素,只能删除一个 返回值是删除的元素

let arr = [1,2,3,4,5]
console.log(arr.shift())  // 1
console.log(arr)   // [2,3,4,5]

4 arr.unshift() 从前面添加元素, 返回值是添加完后的数组的长度

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

5 arr.splice(i,n,replace) 删除从i(索引值)开始之后的那个元素。返回值是删除的元素
  参数:

      i :索引值     

      n :删除的个数     

      replace(可以没有,没有的话只做删除操作):替换的元素

let arr = [1,2,3,4,5]
console.log(arr.splice(1,2,'a','b'))   //[3,4]    
console.log(arr)    // [1,2,'a','b',5]

6 arr.concat() 连接两个数组 返回值为连接后的新数组

let arr = [1,2,3,4,5]
console.log(arr.concat([1,2]))  // [1,2,3,4,5,1,2]
console.log(arr)   // [1,2,3,4,5]

7 str.split() 将字符串转化为数组

let str = '123456'
console.log(str.split('')) // ["1", "2", "3", "4", "5", "6"]

8 arr.sort() 将数组进行排序,返回值是排好的数组,默认是按照最左边的数字进行排序,不是按照数字大小排序的,见例子。

let arr = [2,12,8,1,4,27,3]
console.log(arr.sort())   // [1, 12, 2, 27, 3, 4, 8]
var arr = [2,12,8,1,4,27,3];
    function sequence(a,b){
        if (a>b) {
             return 1;
        }else if(a<b){
            return -1
         }else{
             return 0;
         }
     }
console.log(arr.sort(sequence));

9 arr.reverse() 将数组反转,返回值是反转后的数组

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

10 arr.slice(start,end) 切去索引值start到索引值end的数组,不包含end索引的值,返回值是切出来的数组

let arr = [1,2,3,4,5]
console.log(arr.slice(1,3))   // [2,3]
console.log(arr)    //  [1,2,3,4,5]

11 arr.filter(callback) 过滤数组,返回一个满足要求的数组

  var a=[1,2,3,4,5,6,7,8]
  var b =  a.filter((item)=>{
        return item>3
    })
  console.log(b) [4,5,6,7,8]

12 arr.map(callback) 数组循环

  var a=[1,2,3,4,5,6,7,8]
    a.map((item)=>{
        console.log(item) //依次打印1,2,3,4,5,6,7,8
    })

13.es6 去重操作

 var a=[1,2,2,3,3,4,4,5,6,7,8]
 var b = [...new Set(a)]
     
 console.log(b) [1,2,3,4,5,6,7,8]

14.伪数组转数组

    //先看下什么叫伪数组
   var object = {
       0:'1',
       1:'2',
       2:'3',
       3:'4',
       4:'5',
       length:5
   }
  for(var i=0;i<object.length;i++){
      console.log(object[i]) 
  }
  //依次打印1,2,3,4,5

  //伪数组转数组
  //方法一:
  //Array.from()
  var b = Array.from(object)
  console.log(b) //["1", "2", "3", "4", "5"]
  //方法二:
  var c = [].slice.call(object)
  console.log(c) //["1", "2", "3", "4", "5"]
  //方法三:
  var d = Array.prototype.slice.call(object)
  console.log(d) //["1", "2", "3", "4", "5"]

15.数组的深拷贝

 //浅拷贝方法一:
   var arr = [1,2,3,4];
   var b = arr;
   b.push(5);
   console.log(arr)  // [1, 2, 3, 4, 5]
//深拷贝方法二:
   var arr = [1,2,3,4];
   var b = JSON.parse(JSON.stringify(arr))
   b.push(5);
   console.log(arr)  // [1, 2, 3, 4]
   console.log(b)  // [1, 2, 3, 4, 5]

 

转载于:https://my.oschina.net/u/3964830/blog/2353945

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值