JS数组常用方法

1.map
map方法执行调用方法后返回一个新的数组,新数组中的每一项是调用方法处理后的新值,但并不会改变原数组,并且新数组的长度与原数组相等。

let arr = [1, 2, 3]
let newArr = arr.map(item => return { item * 2 })
newArr = [2, 4, 6]

2.forEach
forEach方法用于遍历数组,没有返回值

let arr = [{id: 1, name: 'xiaoming', age: 21}, {id: 2, name: 'xiaohong', age: 19},{id: 3, name: 'xiaoqiang', age: 22}]
arr.forEach(item => { console.log(item) })
打印结果:[{id: 1, name: 'xiaoming', age: 21}, {id: 2, name: 'xiaohong', age: 19},{id: 3, name: 'xiaoqiang', age: 22}]

3.filter
filter方法用于过滤数组。依次遍历数组中的每一项,返回满足过滤条件的数组。判断是否满足过滤条件是通过函数内部的return实现的,return true表示满足,返回给新数组,反之则不返回。

let arr = [3, 13, 5, 20]
let newArr = arr.filter(item => item > 10)
newArr = [13, 20]

4.find
find方法返回数组中第一个满足条件的值,即数组中的元素,之后的值不再遍历,未找到返回undefined。注:find方法返回的是数组的元素

let arr = [{id: 1, name: 'xiaoming', age: 21}, {id: 2, name: 'xiaohong', age: 19}, {id: 3, name: 'xiaoqiang', age: 22}]
let obj = arr.find(item => item.age > 20)
obj= {id: 1, name: 'xiaoming', age: 21}

5.findIndex
findIndex方法返回数组中第一个满足条件的元素的下标,之后的值不再遍历,未找到返回 -1。

let arr = [{id: 1, name: 'xiaoming', age: 21}, {id: 2, name: 'xiaohong', age: 19},{id: 3, name: 'xiaoqiang', age: 22}]
let index = arr.findIndex(item => item.age > 20)
index = 0

6.some
some方法只要遍历的数组中有一个满足条件的值就返回true,之后的值不再遍历,未找到返回false。

let arr = [{id: 1, name: 'xiaoming', age: 21}, {id: 2, name: 'xiaohong', age: 19},{id: 3, name: 'xiaoqiang', age: 22}]
let value = arr.some(item => item.age < 20)
value = true

7.every
every方法只有当遍历的数组中所有的值都满足条件才返回true,有一个值不满足就返回false,之后的值不再遍历。

let arr = [{id: 1, name: 'xiaoming', age: 21}, {id: 2, name: 'xiaohong', age: 19},{id: 3, name: 'xiaoqiang', age: 22}]
let value = arr.every(item => item.age > 20)
value = false

以上所有方法的执行函数都接受3个值:①currentValue:必需,表示当前元素;②index:可选,表示当前元素的索引值;③arr:可选,表示当前元素所属的数组对象

8.concat()
concat() 方法用于连接两个或多个数组。

let arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

let arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"

arr.concat(arr2) // George,John,Thomas,James,Adrew,Martin

9.slice
slice() 方法将数组部分的副本返回到新的数组对象中。这个对象是从 start 到 end 选择的。需要注意的是,此方法不会修改原始数组。此外,如果向其中一个数组添加新元素,则另一个数组不会受到影响。

// 数组的开始和结束索引
const arrNumbers = [1,3,5,6,7];
console.log(arrNumbers.slice(0, 3)); // [ 1, 3, 5 ]

// 复制数组
const arrNumbers = [1, 2, 3, 4, 5, 6];
const copyNumbers = arrNumbers.slice();
console.log(copyNumbers); // [ 1, 2, 3, 4, 5, 6 ]
copyNumbers[1] = 0;
console.log(copyNumbers); // [ 1, 0, 3, 4, 5, 6 ]
console.log(arrNumbers); // [ 1, 2, 3, 4, 5, 6 ]

// 复制从数组索引 n 开始的子数组。
const arrNumbers = [1, 2, 3, 4, 5, 6];
const copyNumbers = arrNumbers.slice(2);
console.log(copyNumbers); // [ 3, 4, 5, 6 ]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值