JavaScript常用数组操作方法

JavaScript常用数组操作方法

1.concat()连接两个或多个数组

var arr3=arr1.concat(arr2);

2.join()把数组所有元素放入一个字符串,通过指定的分隔符连接。默认逗号连接,不改变原数组
3.push()向数组末尾添加元素,并返回新的长度,会改变原数组
4.pop()删除并返回数组的最后一个元素,会改变原数组
5.shift()删除并返回数组的第一个元素,会改变原数组
6.unshift()向数组开头添加元素,并返回新的长度,会改变原数组
7.slice(start,end)返回被删除元素的数组,包含start不包含end,不改变原数组

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

8.splice(index,num,替换的数据),返回的是被删除元素的数组,会修改原数组

var arr = [1, 2, 3,4]
var arr2=arr.splice(1,2,7,8,9)
console.log(arr);//[1,7,8,9,4]
console.log(arr2);//[2,3]

9.sort()排序

var arr = [1, 3,10, 6,4,0]
var arr1=arr.sort((a,b)=>a-b)//升序
var arr2=arr.sort((a,b)=>b-a)//降序
console.log(arr1);
console.log(arr2);

10.reverse()颠倒数组

循环

11.every()每一项都返回true,结果则返回true
12.some()是对数组中每一项运行给定函数,如果该函数对任一项返回true,则返回true。
13.filter()返回结果为true的项组成的数组

        let arr = [{ name: 'zs', age: 18 }, { name: 'ls', age: 48 }, { name: 'wwu', age: 28 }]
        let arr1 = arr.filter(t => t.age > 20)
        console.log(arr1);//[{ name: 'ls', age: 48 }, { name: 'wwu', age: 28 }]

14.forEach(可以三个参数,第一个是value,第二个是index,第三个是数组体)
缺点:不能同时遍历多个集合,在遍历的时候无法修改和删除集合数据,方法不能使用break,continue语句跳出循环,或者使用return从函数体返回,对于空数组不会执行回调函数

          优点:遍历的时候更加简洁,效率和for循环相同,不用关心集合下标的问题,减少了出错的效率

          应用:用于调用数组的每个元素,并将元素传递给回调函数
  let arry=[9,8,7,6,5,4]
  array.forEach(function(value,index,arr){
      console.log(value)//9,8,7,6,5,4
  })

15.for in:(它大部分用于遍历对象)
定义:用于循环遍历数组或对象属性,fot in循环里面的index是string类型的,

             代码每执行一次,就会对数组的元素或者对象的属性进行一次操作
 缺点:某些情况下,会出现随机顺序的遍历,因为里面的值是string类型,所以增加了转换过程,因此开销较大
 优点:可以遍历数组的键名,遍历对象简洁方便   
//首先遍历对象
   let person={name:"老王",age:23,city:"大唐"}
   let text=""
   for (let i in person){
      text+=person[i]
   }
    console.log(text)
   输出结果为:老王23大唐

//其次在尝试一些数组
   let arry=[1,2,3,4,5]
   for (let i in arry){
        console.log(arry[i])
    }
//能输出出来,证明也是可以的
  })

16.for of:(可遍历map,object,array,set string等)用来遍历数据,比如组中的值,

   优点:避免了for in的所有缺点,可以使用break,continue和return,不仅支持数组的遍历,还可以遍历类似数组的对象,支持字符串的遍历
            最简洁,最直接的遍历数组的语法
            支持map和Set对象遍历
  缺点:不适用于处理原有的原生对象(原生对象是一个子集,包含一些在运动过程中动态创建的对象)
//遍历数组
   let arr=["nick","freddy","mike","james"];
    for (let item of arr){
        console.log(item)
    }
//结果为nice freddy mike james
//遍历对象
   let person={name:"老王",age:23,city:"唐山"}
   for (let item of person){
        console.log(item)
    }
//我们发现它是不可以的
//首先它和forEach一样不可以遍历对象
//解决办法:就是把对象先转化为数组类型- -
//有一个对象:
     let obj={a:1,b:2,c:3}
//用Object.keys属性转化
     let obj2=Object.keys(obj)
//最后就可以用来遍历了
   for (let i of obj2){
     console.log(i)
   }
//输出结果就能出来了,forEach同理

17.map()方法返回一个新数组,此方法可以以一个函数为参数,循环数组的每一个元素,函数将数组中的元素接收为单个参数.

        let arr = [1, 5, 10];
        let arr1 = arr.map(t => t * 10);
        console.log(arr);//[1, 5, 10]
        console.log(arr1);//[10, 50, 100]

18.reduce()
reduce用法详细文档.
一、语法
arr.reduce(function(prev,cur,index,arr){

}, init);

其中,
arr 表示原数组;
prev 表示上一次调用回调时的返回值,或者初始值 init;
cur 表示当前正在处理的数组元素;
index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;
init 表示初始值。
看上去是不是感觉很复杂?没关系,只是看起来而已,其实常用的参数只有两个:prev 和 cur
二、实例
先提供一个原始数组:

var arr = [3,9,4,3,6,0,9];
  1. 求数组项之和
 var sum = arr.reduce(function (prev, cur) {
     return prev + cur;
 },0);
 console.log(sum);//34
  1. 求数组项最大值
var max = arr.reduce(function (prev, cur) {
    return Math.max(prev,cur);
});
 console.log(max);//9
  1. 数组去重
var newArr = arr.reduce(function (prev, cur) {
    prev.indexOf(cur) === -1 && prev.push(cur);
    return prev;
},[]);
 console.log(arr);//[3,9,4,3,6,0,9]
 console.log(newArr);//[3,9,4,6,0]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值