5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例

5个数组Array方法:indexOf、filter、forEach、map、reduce使用实例

一、介绍

数组是JavaScript中最常用的数据类型之一。使用数组的时候,我们经常需要使用到一些方法对数组进行操作,比如获取某个元素的下标、筛选元素、遍历元素、处理元素等等。本篇攻略将详细讲解五个数组Array方法:indexOf、filter、forEach、map、reduce,并提供实例说明,帮助大家更好了解和熟练掌握这些方法的使用。

二、indexOf

indexOf方法用于获取指定元素在数组中的下标。如果数组中存在该元素,则返回该元素的下标;如果不存在,则返回-1。该方法有如下语法:

array.indexOf(searchElement[, fromIndex])

其中,searchElement为要搜索的元素,fromIndex为可选参数,表示搜索的起始下标,默认值为0。

示例一:查找指定元素在数组中的下标

const arr = ['apple', 'banana', 'orange', 'grape', 'watermelon'];
const index = arr.indexOf('orange');

console.log(index); // 2

示例二:查找指定元素在数组中是否存在

const arr = ['apple', 'banana', 'orange', 'grape', 'watermelon'];
const index = arr.indexOf('kiwi');

if (index === -1) {
  console.log('该元素不存在');
} else {
  console.log('该元素下标为:', index);
}

三、filter

filter方法用于筛选符合条件的元素并返回一个新数组。它的语法如下:

const newArray = array.filter(callback(element[, index[, array]])[, thisArg])

其中,callback为用于测试每个元素的函数,element为当前被测试的元素,index为可选参数,表示当前元素在数组中的下标,array为可选参数,表示原数组。这个函数返回一个布尔值,表示是否保留该元素。thisArg为可选参数,表示执行回调函数时的this值,默认为undefined。

示例一:筛选数组中所有偶数

const arr = [1, 2, 3, 4, 5, 6];
const newArr = arr.filter(function(item) {
  return item % 2 === 0;
});

console.log(newArr); // [2, 4, 6]

示例二:筛选对象数组中符合条件的元素

const arr = [
  { name: 'Apple', price: 5 },
  { name: 'Banana', price: 3 },
  { name: 'Orange', price: 2 },
  { name: 'Grape', price: 4 },
  { name: 'Watermelon', price: 6 }
];
const newArr = arr.filter(function(item) {
  return item.price > 4;
});

console.log(newArr); // [{ name: 'Apple', price: 5 }, { name: 'Watermelon', price: 6 }]

四、forEach

forEach方法用于遍历数组。它的语法如下:

array.forEach(callback(currentValue[, index[, array]])[, thisArg])

其中,callback为遍历数组时执行的回调函数,currentValue表示当前遍历的数组元素,index表示当前元素在数组中的下标,array表示原数组。这个函数没有返回值。thisArg同样为可选参数,表示执行回调函数时的this值,默认为undefined。

示例一:遍历输出数组中的元素

const arr = ['apple', 'banana', 'orange', 'grape', 'watermelon'];
arr.forEach(function(item, index) {
  console.log(index + ': ' + item);
});

示例二:使用箭头函数遍历输出数组中的元素

const arr = ['apple', 'banana', 'orange', 'grape', 'watermelon'];
arr.forEach((item, index) => {
  console.log(index + ': ' + item);
});

五、map

map方法用于对数组中的每个元素进行处理并返回一个新的数组。它的语法如下:

const newArray = array.map(callback(currentValue[, index[, array]])[, thisArg])

其中,callback为用于处理每个元素的函数,currentValue表示待处理的当前元素,index表示当前元素在数组中的下标,array表示原数组。这个函数返回一个新的数组。thisArg同样为可选参数,表示执行回调函数时的this值,默认为undefined。

示例一:将数组中的元素全部转为大写

const arr = ['apple', 'banana', 'orange', 'grape', 'watermelon'];
const newArr = arr.map(function(item) {
  return item.toUpperCase();
});

console.log(newArr); // ['APPLE', 'BANANA', 'ORANGE', 'GRAPE', 'WATERMELON']

示例二:将对象数组中某个属性提取出来组成一个新数组

const arr = [
  { name: 'Apple', price: 5 },
  { name: 'Banana', price: 3 },
  { name: 'Orange', price: 2 },
  { name: 'Grape', price: 4 },
  { name: 'Watermelon', price: 6 }
];
const newArr = arr.map(function(item) {
  return item.name;
});

console.log(newArr); // ['Apple', 'Banana', 'Orange', 'Grape', 'Watermelon']

六、reduce

reduce方法用于对数组中的每个元素进行累加或累乘等操作,最终返回一个值。它的语法如下:

array.reduce(callback[, initialValue])

其中,callback为累加器函数,initialValue为可选参数,表示初始值。累加器函数接受四个参数:accumulator表示累加器的累计值,currentValue表示当前遍历的元素,index表示当前元素在数组中的下标,array表示原数组。函数返回值为累计值。初始值默认为数组的第一个元素。

示例一:对数组元素进行累加

const arr = [1, 2, 3, 4, 5];
const sum = arr.reduce(function(accumulator, currentValue) {
  return accumulator + currentValue;
});

console.log(sum); // 15

示例二:统计对象数组中某属性值的总和

const arr = [
  { name: 'Apple', price: 5 },
  { name: 'Banana', price: 3 },
  { name: 'Orange', price: 2 },
  { name: 'Grape', price: 4 },
  { name: 'Watermelon', price: 6 }
];
const priceSum = arr.reduce(function(accumulator, currentValue) {
  return accumulator + currentValue.price;
}, 0);

console.log(priceSum); // 20

以上就是五个数组Array方法:indexOf、filter、forEach、map、reduce使用实例的完整攻略。通过以上示例,希望读者能够更好地理解和掌握这些数组方法的使用,从而提高开发效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • javascript操作referer详细解析

    关于JavaScript操作Referer的详细解析 Referer是由HTTP协议定义的一个请求头部信息,它记录了当前请求是从哪个地址跳转过来的。在JavaScript中,我们可以通过document对象的属性来访问Referer值,也可以通过编程的方式来修改Referer值。下面将分别进行讲解。 通过document对象访问Referer值 我们可以通过…

    JavaScript 2023年5月28日
    00
  • 5种处理js跨域问题方法汇总

    以下是“5种处理js跨域问题方法汇总”的完整攻略: 1. 什么是跨域问题 跨域问题是指在浏览器端,当脚本试图访问来自不同源(域名、端口、协议)的资源时,会出现安全限制,这就是跨域问题。跨域问题对前端开发影响较大,如果不处理的话,可能会出现一些非常棘手的问题。 2. 为什么会出现跨域问题 跨域问题的产生是因为浏览器出于安全考虑而限制了客户端脚本中发起的跨域HT…

    JavaScript 2023年6月11日
    00
  • javascript demo 基本技巧

    首先,我们要了解何谓 JavaScript Demo,这其实是一种基于 JavaScript 语言开发的小型互动演示,它可以运行在浏览器端或 Node.js 等环境中,用于展示和演示某项特定功能或效果。 下面,我将分享一些 JavaScript Demo 开发的基本技巧,帮助大家更好地开发出功能强大且易维护的演示程序。 好的 JavaScript Demo …

    JavaScript 2023年5月27日
    00
  • [js+css]点击隐藏层,点击另外层不能隐藏原层

    针对“[js+css]点击隐藏层,点击另外层不能隐藏原层”的需求,需要用到JavaScript和CSS的结合。下面是实现这个效果的完整攻略: 步骤 1:HTML结构 首先,需要定义两个层,一个是要隐藏的层,一个是阻止隐藏的层。例如: <div class="hide" id="hide-layer">这是要…

    JavaScript 2023年6月11日
    00
  • JavaScript数据类型相关知识详解

    JavaScript数据类型相关知识详解 在JavaScript中,数据类型可以分为基本数据类型和复杂数据类型。本篇攻略将详细讲解每种数据类型和其相关知识点。 基本数据类型 Number JavaScript中的Number类型可以表示整数和浮点数。在JavaScript中,Number类型可以进行四则运算和比较运算。 整数 JavaScript中的整数范围…

    JavaScript 2023年5月18日
    00
  • 使用vue自定义指令开发表单验证插件validate.js

    使用Vue自定义指令开发表单验证插件validate.js的完整攻略主要包含以下几个步骤: 创建Vue自定义指令 定义表单验证规则 在自定义指令中执行表单验证 绑定自定义指令到表单元素 完善表单验证插件 下面将对这些步骤进行详细讲解: 创建Vue自定义指令 首先需要使用Vue的directive方法来创建一个自定义指令,如下所示: Vue.directive…

    JavaScript 2023年6月10日
    00
  • 使用JS的DOM文档对象模型获取前端循环的参数

    获取前端循环的参数可以通过JavaScript的DOM文档对象模型来实现。在这个过程中,可以使用如下的步骤来获取循环的参数。 步骤一:获取要循环的HTML元素 首先需要获取前端页面中要进行循环的HTML元素,可以使用JavaScript中的document对象的方法来获取。document对象的方法包括getElementById()、getElements…

    JavaScript 2023年6月10日
    00
  • JS获取农历日期具体实例

    下面就来讲解“JS获取农历日期具体实例”的完整攻略。 步骤1:引入农历计算代码 获取农历日期需要用到农历计算代码,这里主要介绍一个轻量级的农历计算库lunar-js,具体项目地址可查看GitHub。下载后可在页面上通过script标签引入。如下: <script type="text/javascript" src="lu…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部