原文 | https://javascript.plainenglish.io/8-javascript-array-methods-you-should-know-81947c9e46de

原译 | 杨小二

打开网易新闻 查看更多图片

数组构成了几乎任何编程语言的组成部分。了解数组对于揭示编程概念非常重要。

根据维基百科的解释,数组可以定义为由一组元素组成的数据结构,每个元素由至少一个数组索引或键标识。存储一个数组,以便可以通过数学公式从其索引元组计算每个元素的位置。

在本文中,我们将研究 JavaScript 数组方法以及如何使用它们。

简单来说,数组只是一个变量,在给定时间可以保存多个值。

另外需要注意的是,几乎所有主流浏览器都支持这些数组方法。

1、map() 方法

map() 方法是一种数组方法,它通过对付数组中存在的每个元素调用函数来创建数组。

此方法不会为没有值的数组元素执行函数。

map() 数组方法的行为就像一个纯函数,不会改变原始数组。

例子:

const users = [{name:‘John’, age:33},
{name:‘Philip’, age:40},
{name:‘Carl’, age:30},
{name:‘Frank’, age:27},
{name:‘Florin’, age:25},
{name:‘Debby’, age:21},
{name:‘Liam’, age:26}]
const userAge=users.map((user)=>{return user.name})
console.log(userAge)

这将返回给定数组中的所有名称。

2、filter() 方法

filter() 数组方法返回一个给定的数组,该数组从原始数组传递给定的计算。在filter()内部,我们提供了如下所示的功能。

filter() 函数不能用于没有值的数组元素。

filter() 函数不会改变原始数组,因此它的行为就像一个纯函数。

例子:

const users = [
{name:‘John’, age:33},
{name:‘Philip’, age:40},
{name:‘Carl’, age:30},
{name:‘Frank’, age:27},
{name:‘Florin’, age:25},
{name:‘Debby’, age:21},
{name:‘Liam’, age:26}]
const filterUsers = users.filter((user)=>{return user.age <=27})
console.log(filterUsers)

3、find() 方法

find() 数组方法用于在数组中查找给定对象。

此方法返回通过给定语句测试的第一个元素的值。

此方法对数组中存在的每个元素执行一次给定的函数。

find() 方法不会改变提供的原始数组。

例子:

const users = [
{name:’John’, age:33},
{name:’Philip’, age:40},
{name:’Carl’, age:30},
{name:’Frank’, age:27},
{name:’Florin’, age:25},
{name:’Debby’, age:21},
{name:’Liam’, age:26}]
const findUser= users.find((user)=>{return user.name === ‘Debby’})
console.log(findUser)

4、forEach() 方法

forEach() 数组方法用于为数组中的每个元素调用特定的函数。

例子:

const users = [
{name:’John’, age:33},
{name:’Philip‘, age:40},
{name:’Carl‘, age:30},
{name:’Frank’, age:27},
{name:’Florin’, age:25},
{name:’Debby’, age:21},
{name:’Liam’, age:26}]
users.forEach((user)=>{console.log(user.name)})

该函数将返回给定数组中的所有名称。在大多数情况下,forEach() 方法使处理数组变得非常容易。

5、some() 方法

some() 数组方法用于检查数组中给定的一组元素是否通过特定测试。

some() 数组方法的行为就像一个纯函数。

如果传递了值,则返回true(并且不检查剩余值),否则返回false。

例子:

const users = [
{name:’John’, age:33},
{name:’Philip’, age:40},
{name:’Carl’, age:30},
{name:’Frank’, age:27},
{name:’Florin’, age:25},
{name:’Debby’, age:21},
{name:’Liam’, age:26}]
const midUsers = users.some((user)=>{return user.name <= 27})
console.log(midUsers)

6、every()方法

every() 方法执行并检查给定数组中的所有元素是否通过提供的测试。

它的行为就像一个纯函数,不会改变原始数组。

例子:

const users = [
{name:’John’, age:33},
{name:’Philip’, age:40},
{name:’Carl’, age:30},
{name:’Frank’, age:27},
{name:’Florin’, age:25},
{name:’Debby’, age:21},
{name:’Liam’, age:26}]
const everyUsers = users.every((user)=>{return user.name <= 25})
console.log(everyUsers)

7、reduce() 方法

顾名思义,它将原始数组简化为一对值,并为每个给定的值执行给定的函数。

例子:

const users = [
{name:’John’, age:33},
{name:’Philip’, age:40},
{name:’Carl’, age:30},
{name:’Frank’, age:27},
{name:’Florin’, age:25},
{name:’Debby’, age:21},
{name:’Liam’, age:26}]
const totalAge= users.reduce((curr, user)=>{return user.age + curr}, 0)
console.log(totalAge)

8、includes() 方法

includes() 数组方法检查数组中是否包含给定元素。

例子:

const ages = [19,56,45,54,30,32,21,33,21,18,23,23]
const hasTwentyThree=ages.includes(23)

如果给定的测试通过,则返回 true,否则返回 false。

最后的想法

如果你喜欢阅读这篇文章并认为其他人也会喜欢它,请不要犹豫,分享它。

感谢你的阅读,编程愉快!