js数组的常用方法 最详情最详解

数组的方法

1.push()添加到最后,返回添加后的数组,改变原数组

 let arr =[1,2,3,4,5]

      arr.push(6)

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

 2.unshift()添加到最前面,返回添加后的数组;改变原数组

let arr =[1,2,3,4,5]

  arr.unshift(6)

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

3、shift()删除数组的第一个元素改变原数组

let arr =[1,2,3,4,5]

      arr.shift()

 console.log(arr)=[2,3,4,5]

4.pop():数组末尾移除最后一项,减少数组的 length 值

let arr =[1,2,3,4,5]

      arr.pop()

 console.log(arr)=[1,2,3,4]

5. sort():按升序排列数组项——即最小的值位于最前面,最大的值排在最后面。改变原数组

在排序时,sort()方法会调用每个数组项的 toString()转型方法,然后比较得到的字符串,以确定如何排序。即使数组中的每一项都是数值, sort()方法比较的也是字符串,因此会出现以下的这种情况:

 let arr =[5,2,1,4,3]
 let arr2=['C','D','A','B']

      arr.sort()
      arr2.sort()

      console.log(arr)=[1, 2, 3, 4, 5]
      console.log(arr2)=["A", "B", "C", "D"]


6.reverse():反转数组项的顺序 改变原数组

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

7.concat() :将参数添加到原数组中。这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给 concat()方法传递参数的情况下,它只是复制当前数组并返回副本。

      let arr =[1,2,3,4,5]  
      
      let arr1=arr.concat(6,7)
    
      console.log(arr)= [1, 2, 3, 4, 5]  原数组未被改变

      console.log(arr1)=[1, 2, 3, 4, 5, 6, 7]



let arr2=arr.concat([6,[7,8]])
 
console.log(arr2)=[1, 2, 3, 4, 5, 6, Array(2)]

8.slice():返回从原数组中指定开始下标到结束下标之间的项组成的新数组。slice()方法可以接受一或两个参数,即要返回项的起始和结束位置。在只有一个参数的情况下, slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。  原数组未被改变 
 

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

9.splice():能够操作原数组  1.参数起始值,增加或是删除的位置,2.指定删除元素的个数,3.插入的值

let arr =[1,2,3,4,5]

console.log(arr.splice(2,3))=[1,2]
console.log(arr.splice(0,0,6,7,8,9,10,11,13)) =[6, 7, 8, 9, 10, 11, 13, 1, 2, 3, 4, 5]

10.forEach 用于遍历数组,替代 for 循环 三个参数

  1. 数组当前项的值
  2. 数组当前项的索引
  3. 数组对象本身
 let arr =[1,2,3,4,5]
      
      arr.forEach((item,index,array)=>{
       console.log(item+item,index,array); 
      })
2 0 (5) [1, 2, 3, 4, 5]
4 1 (5) [1, 2, 3, 4, 5]
 6 2 (5) [1, 2, 3, 4, 5]
14 8 3 (5) [1, 2, 3, 4, 5]
14 10 4 (5) [1, 2, 3, 4, 5]

11.filter 过滤数组单元值,生成新数组

参数callback

用来测试数组的每个元素的函数。返回 true 表示该元素通过测试,保留该元素,false 则不保留。它接受以下三个参数:

element 数组中当前正在处理的元素。

index 可选正在处理的元素在数组中的索引。

array可选 调用了 filter 的数组本身。

 let arr =[1,2,3,4,5]
      
     let arr2 = arr.filter((item,index,array)=>{
      console.log(item,index,array);
       return item>3 
      })
      console.log(arr2)=[4, 5]

12.map 把每项都执行一遍,结果会生成新数组

let arr =[1,2,3,4,5]
      
     let arr2 = arr.map((item,index,array)=>{
      console.log(item,index,array);
       return item * item 
      })
      console.log(arr2)=[1, 4, 9, 16, 25]

13.join 数组单元素拼接成了符串 不改变原数组

var a = ['Wind', 'Rain', 'Fire'];
var myVar1 = a.join();      // myVar1的值变为"Wind,Rain,Fire"
var myVar2 = a.join(', ');  // myVar2的值变为"Wind, Rain, Fire"
var myVar3 = a.join(' + '); // myVar3的值变为"Wind + Rain + Fire"
var myVar4 = a.join('');    // myVar4的值变为"WindRainFire"

14.indexOf 检索数组单元值  区分大小写

let arr =[1,2,3,4,'a']
      console.log(arr.indexOf('a'));=4 //返回第一次找到的下标

15.find:返回数组中首次满足条件的元素

let arr =[1,2,3,4,5]
      
     let arr2 = arr.find((item,index,array)=>{
      console.log(item,index,array);
       return item >1
      })
      console.log(arr2)= 2

16.findIndex:返回数组中首次满足条件的元素的索引值

   let arr =[1,2,3,4,5]
      
     let arr2 = arr.findIndex((item,index,array)=>{
      console.log(item,index,array);
       return item ===5
      })
      console.log(arr2)=4 //返回第一次找到元素的索引值

17.some:查找满足条件的元素,有一个满足即为true 都不满足为false

let arr =[1,2,3,4,5]
      
     let arr2 = arr.some((item,index,array)=>{
      console.log(item,index,array);
       return item ===1
      })
      console.log(arr2)= true

18.every:查找满足条件的元素,都满足返回true,否者就是false

let arr =[1,2,3,4,5]
      
     let arr2 = arr.every((item,index,array)=>{
      console.log(item,index,array);
       return item ===3
      })
      console.log(arr2)=false

19.reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。


callback (执行数组中每个值的函数,包含四个参数)
 
    1、previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
    2、currentValue (数组中当前被处理的元素)
    3、index (当前元素在数组中的索引)
    4、array (调用 reduce 的数组)
 
initialValue (作为第一次调用 callback 的第一个参数。)



var  arr = [1, 2, 3, 4];
var sum = arr.reduce(function(prev, cur, index, arr) {
    console.log(prev, cur, index);
    return prev + cur;
},0) //注意这里设置了初始值
console.log(arr, sum);
 
打印结果:
0 1 0
1 2 1
3 3 2
6 4 3
[1, 2, 3, 4] 10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值