js数组方法使用小结

1、filter(),“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组
  • 参数:function(item,index,arr)
  • 不会更改原数组
  • 有返回值,返回依条件返回的数组
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
let arr1 = [{
name: 'xugang',
age: 28
},{
name: 'wangran',
age: 27
}];

const arr2 = arr1.filter((item)=>{
return item.name === 'xugang'
});

arr2 // arr2 = [{name:'xugang',age:28}]

以上可以简写为:
const arr2 = arr1.filter(item=>item.name === 'xugang');
2、map(),指“映射”,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
  • 参数:function(item,index,arr)
  • 会更改原数组
  • 有返回值,返回新的数组
1
2
3
4
5
6
7
8
9
10
let arr = [{
animal: 'dag'
},{
animal: 'cat'
}];

arr.map((item,index)=>{
item.color = 'red'
})
arr // arr = [{animal: 'dag',color: 'red'},{animal: 'cat',color: 'red'}]
3、every(),判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。
  • 参数:function(item,index,arr)
  • 不会更改原数组
  • 有返回值: true or false
1
2
3
4
5
6
7
8
9
10
let arr = [1, 2, 3, 4, 5];
const status = arr.every((item,index)=>{
return item < 10
})
status // true

const status = arr.every((item,index)=>{
return item > 3
})
status // false
4、some(),判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。
  • 参数:function(item,index,arr)
  • 不会更改原数组
  • 有返回值: true or false
1
2
3
4
5
6
7
8
9
10
let arr = [1, 2, 3, 4, 5];
const status = arr.some((item,index)=>{
return item < 2
})
status // true

const status = arr.some((item,index)=>{
return item < 1
})
status // false
4、forEach(),对数组进行遍历循环,对数组中的每一项运行给定函数。
  • 参数:function(item,index,arr)
  • 不会更改原数组
  • 没有返回值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
let arr = [{
name: 'xugang',
age: 28
},{
name: 'wangran',
age: 27
}];
let arr1 = [];
arr.forEach((item,index)=>{
if(item.name === 'wangran'){
arr1.push(item.age)
}
})
arr1 // [27]
5、slice(),返回从原数组中指定开始下标到结束下标之间的项组成的新数组。
  • 参数:接受一或两个参数,即要返回项的起始和结束位置。在只有一个参数的情况下,slice()方法返回从该参数指定位置开始(包括指定位置)到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。如果开始下标或者结束下标出现负数,则加上原数组长度,转换为正数。
  • 不会更改原数组
  • 有返回值
1
2
3
4
5
let arr = [1,2,3,4,5,6,7,8]
const arr1 = arr.slice(2) // [3,4,5,6,7,8],从起始下标(包含起始下标)开始到数组结束
const arr2 = arr.slice(2,5) // [3,4,5] ,从起始下标(包含起始下标)开始到结束下标(不包含结束下标)
const arr3 = arr.slice(2,-2) // [3,4,5,6],结束下标为(-2 + 8 = 6)
const arr4 = arr.slice(-3,-2) // [6],开始下标为(-3 + 8 = 5),结束下标为(-2 + 8 = 6)
6、splice(),很强大的数组方法,它有很多种用法,可以实现删除、插入和替换。
  • 参数:接受一或两个参数,即要返回项的起始和结束位置。在只有一个参数的情况下,slice()方法返回从该参数指定位置开始(包括指定位置)到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。如果开始下标或者结束下标出现负数,则加上原数组长度,转换为正数。
  • 会更改原数组
  • 有返回值,始终都会返回一个数组,该数组中包含从原始数组中删除的项,如果没有删除任何项,则返回一个空数组
1
2
3
4
5
let arr = [1,2,3,4,5,6,7,8]
const arr1 = arr.slice(2) // [3,4,5,6,7,8],从起始下标(包含起始下标)开始到数组结束
const arr2 = arr.slice(2,5) // [3,4,5] ,从起始下标(包含起始下标)开始到结束下标(不包含结束下标)
const arr3 = arr.slice(2,-2) // [3,4,5,6],结束下标为(-2 + 8 = 6)
const arr4 = arr.slice(-3,-2) // [6],开始下标为(-3 + 8 = 5),结束下标为(-2 + 8 = 6)
原创技术分享,您的支持将鼓励我继续创作