数组常见方法,数组的循环及使用区别

filter方法创建一个新数组,新数组的元素是符合指定条件的元素,不会检测空数组,不会改变原数组。

  是否改变原数组:不改变

const arr = [0,1,2,3,4]
const arr2 = arr.filter(item=>item>2)
alert(arr);//0,1,2,3,4
alert(arr2);//3,4

 map方法:返回一个新数组,新数组的元素是原数组元素按照顺序依次处理后的值。

  是否改变原数组:不改变

 

const arr = [0,1,2,3,4]
const arr2 = arr.map(item=>item+2)
alert(arr);//0,1,2,3,4;
alert(arr2);//2,3,4,5,6;

 

foreach方法:循环调用数组的每个元素,传递给回调函数,不可以结束循环。例:将数组的数据循环添加进一个新数组。不会返回执行结果。

  提前中断:不可直接中断

  是否改变原数组:改变

  forEach(当前值,当前值索引,数组对象本身)

  根据其特点,常用情况肯定是对于数组的操作,并且过程不需要中断,且对原数组不会造成影响。另外它不支持continue,非要的话可以使用return false或true代替。break可以用try|catch|every|some代替。

const arr = [0,1,2,3,4]
const arr2 = []
arr.forEach(item=>arr2.push(item))
alert(arr);//0,1,2,3,4
alert(arr2);//0,1,2,3,4

concat方法:合并数组。合并数组和参数,合并数组和数组。

  是否改变原数组:不改变

//数组直接和参数合并
const arr = [0,1,2]
alert(arr.concat(3,4));//0,1,2,3,4

//2个数组合并
const arr2 = [0,1,2]
const brr = [3,4]
alert(arr2.concat(brr))//0,1,2,3,4

//3个数组合并
const arr3 = [0,1]
const brr = [2]
const crr = [3,4]
alert(arr3.concat(brr,crr))//0,1,2,3,4

join方法:把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分割的。

const arr = [0,1,2,3,4]
alert(arr.join('+'))//0+1+2+3+4

push方法:在数组的末尾增加元素,可以一次增加多个元素。

const arr = [0,1]
arr.push(2)
arr.push(3,4)
alert(arr)//0,1,2,3,4

pop方法:在数组的末尾删除一个元素

const arr = [1,2,3,4]
arr.pop
alert(arr)//1,2,3

shift方法:删除数组的第一个元素

const arr = [0,1,2,3]
arr.shift()
alert(arr)//1,2,3

unshift方法:在数组的开头增加元素,可以一次增加多个元素

const arr = [3,4]
arr.unshift(2)
arr.unshift(0,1)
alert(arr)//0,1,2,3,4

splice方法:删除、插入、替换元素。

语法:this.arr.splice(index,num,value)

//删除index=1的1个元素
const arr = [0,1]
arr.splice(1,1)
alert(arr)//0
//插入  在index=3插入3
const arr2 = [0,1,2,4]
arr2.splice(3,0,3)
alert(arr2)//0,1,2,3,4
//替换index=3的一个元素
const arr3 = [0,1,2,5,4]
arr3.splice(3,1,3)
alert(arr3)//0,1,2,3,4

sort()方法:对数组进行排序

const arr = [2,1,3]
arr.sort()
alert(arr)//1,2,3

reverse()方法:将数组进行反转

const arr = [2,1,0]
arr.reverse()
alert(arr)//0,1,2

slice()方法:

从数组返回指定的元素

语法:arr.slice(start,end),即要返回元素的起始和结束位置。

start: 必须。规定从何处开始选取。如果是负数,那么久从数组尾部开始计算位置。-1指最后一个元素。

end:可选。规定从何处结束选取。该参数是数组片段结束处的数组下标。如果没有指定该参数,那么切分的数组包含从start到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

const arr  = [0,1,2,3]
alert(arr.slice(1))//0,1,2,3
alert(arr.slice(-1))//3
alert(arr.slice(-2))//2,3
alert(arr.slice(1,3))//1,2

 

find方法:返回符合要求的第一个数组元素。

  提前中断:可以;

  改变原数组:否

const arr = [0,1,2,3]
const arr 2 = arr.find(item=>item<5)//0

 

findIndex()方法:返回符合函数条件的数组元素下标,数组中的每个元素都调用一次函数执行:空数组不会执行。

返回符合条件元素在数组里的第一个元素位置,没有符合条件的元素返回-1

  提前中断:

  改变原数组:否

const arr = [0,1,2,3]
const arr2 = arr.findIndex(item=>item==3)//3
const arr3 = arr.findIndex(item=>item<2)//0
const arr4 = arr.findIndex(item=>item == 5)//-1

 

some()方法:检测数组中的元素是否满足指定条件,依次执行数组中的每个元素;如果有一个元素满足条件,则表达式返回true,剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。

const arr = [0,1,2,3]
const arr2 = arr.some(item=>item<2)//true
const arr3 = arr.some(item=>item>10)//false

 

every()方法:使用指定函数检测数组中的所有元素是否都满足条件,空数组不会执行。如果数组中检测到有一个元素不满足,则整个表达式返回false,则剩余元素不会再进行检测。

如果所有元素都满足条件,则返回true。

const arr = [0,1,2,3,4]
const arr2  = arr.every(item=>item<2)//false
const arr3 = arr.every(item=>item<5)//true

 

循环:

 1.for()(数组)

  提前中断:可以

 2.for in()(对象/数组)

  提前中断:可以

  一般用于遍历对象,获取属性的时候用到多些 for(key in value)

 3.for of()

 

 4.forEach()(数组)

  foreach方法对数组的每个元素执行一次给定的函数。

 

 5.reduce()(数组)

 

 6.map()(数组)

  map方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。

 

 7.flat()

 

 8.flatMap()

 

 9.filter()

  filter()方法创建一个新数组,其包含通过函数条件过滤的所有元素,不会对空数组处理,会直接返回。

  

 

资料来自:https://www.tnblog.net/13340910616/article/details/6160

      https://blog.csdn.net/weixin_44181180/article/details/119244185

posted on 2022-01-17 20:34  SE7EN_96  阅读(271)  评论(0编辑  收藏  举报

导航