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

yizhihongxing

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日

相关文章

  • Chrome中JSON.parse的特殊实现

    谈论Chrome中JSON.parse的特殊实现需要先了解JSON.stringify()和JSON.parse()这两个API的作用。其中,JSON.stringify()可以将一个JavaScript对象或数组转换成一个JSON字符串,而JSON.parse()则可以将JSON字符串转化为JavaScript对象或数组。 我们来看一个例子: var ob…

    JavaScript 2023年5月27日
    00
  • js截取字符串功能的实现方法

    下面是关于JS字符串截取功能的实现方法攻略: 一、JavaScript截取字符串的substr()方法 substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。 语法: string.substr(start,length) 其中: start 是一个非负整数,表示想要开始抽取的位置 length 是一个非负整数,表示抽取的字符个数 …

    JavaScript 2023年5月28日
    00
  • react echarts tree树图搜索展开功能示例详解

    当用户需要展示树形结构数据时,react-echarts库提供了一个很好的解决方案:树图。除此之外,还可以为树图添加搜索和展开等交互功能,方便用户更好地查看数据。在本文中,我们将为您展示如何在react-echarts中实现这些功能。 前置条件 在进行以下步骤之前,请确保您已经安装以下依赖项: React:16.8.0 以上版本 Echarts:5.0.2 …

    JavaScript 2023年6月11日
    00
  • 深入理解JavaScript 闭包究竟是什么

    深入理解JavaScript 闭包究竟是什么 什么是闭包? 在JavaScript中,闭包是一种特殊的函数。它可以访问它外部作用域中的变量和函数,即使外部函数已经执行完毕,内部函数仍然可以访问外部函数中的变量和函数。这是因为JavaScript采用了词法作用域,并通过作用域链来保存变量和函数。 闭包的应用 保存变量 由于闭包可以访问外部作用域中的变量,因此可…

    JavaScript 2023年6月10日
    00
  • vue如何监听页面缓存事件

    我们可以通过Vue的生命周期函数来监听页面缓存事件,其中包括 beforeRouteLeave 和 beforeRouteEnter 这两个函数。 beforeRouteLeave beforeRouteLeave 是在Vue组件即将被离开路由时被调用的函数,我们可以在这个函数中做一些路由离开前的准备工作,比如保存一些数据、询问用户是否需要保存等。 示例一:…

    JavaScript 2023年6月11日
    00
  • 浅谈下拉菜单中的Option对象

    下拉菜单是Web界面设计中常用的界面元素之一,Option对象是下拉菜单中的选项对象。要想了解Option对象,需要从以下几个方面来讲解: 1. Option对象的定义 Option对象是HTML下拉列表(select)元素中的一个选项对象,每个选项对象都有以下属性和方法: <option value="option_value" …

    JavaScript 2023年6月10日
    00
  • jquery获取当前日期的方法

    jQuery获取当前日期的方法有多种,常用的有以下三种: 1. 使用JavaScript原生Date对象 可以使用JavaScript原生的Date对象获取当前日期。例如,以下代码可以获取当前日期的年/月/日三个部分: var date = new Date(); var year = date.getFullYear(); var month = date…

    JavaScript 2023年5月27日
    00
  • javascript结合Cookies实现浏览记录历史第1/3页

    对于“javascript结合Cookies实现浏览记录历史第1/3页”的完整攻略,以下为具体步骤: 1. 添加Cookie操作函数 在JavaScript中,需要先定义一些操作Cookie的函数。下面是一个可以添加、获取和删除Cookie的示例代码: // 添加Cookie function setCookie(name, value, expires) …

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