JavaScript ES5 数组方法实战:indexOf、filter、forEach、map、reduce
5星 · 超过95%的资源 142 浏览量
更新于2024-09-03
收藏 63KB PDF 举报
`indexOf`方法
在JavaScript中,`indexOf`方法是一个非常实用的数组成员查找函数。它允许我们检查一个特定的元素是否存在于数组中,并返回该元素的索引。如果元素不存在,`indexOf`会返回-1。这个方法对于数组的搜索和过滤非常有用,尤其是在处理数据集合时。
例如,在给定的示例中:
```javascript
var arr = ['apple', 'orange', 'pear'];
console.log("found:", arr.indexOf('orange'));
```
这行代码会输出`"found: 1"`,因为'orange'是数组中的第二个元素,其索引为1。
2) `filter`
`filter`方法创建一个新的数组,其中包含通过测试的所有元素。这个测试通常是一个函数,用于判断元素是否满足某种条件。例如,我们可以找出数组中所有长度大于3的字符串:
```javascript
var fruits = ['apple', 'orange', 'pear', 'banana'];
var longFruits = fruits.filter(function(fruit) {
return fruit.length > 3;
});
console.log(longFruits); // 输出:['orange', 'banana']
```
在这个例子中,`filter`方法返回了一个新的数组,只包含长度大于3的水果名称。
3) `forEach`
`forEach`方法对数组的每个元素执行一个提供的函数。这通常用于遍历数组并执行某种操作,而不需要显式地使用循环。例如,打印数组中的所有元素:
```javascript
var numbers = [1, 2, 3, 4, 5];
numbers.forEach(function(number) {
console.log(number);
});
```
这段代码会依次打印出数组中的每一个数字。
4) `map`
`map`方法创建一个新的数组,其结果是调用提供的函数的返回值。这个函数被应用于数组的每个元素。例如,将数组中的所有元素乘以2:
```javascript
var numbers = [1, 2, 3, 4, 5];
var doubledNumbers = numbers.map(function(number) {
return number * 2;
});
console.log(doubledNumbers); // 输出:[2, 4, 6, 8, 10]
```
`map`方法不会改变原始数组,而是返回一个新的数组。
5) `reduce`
`reduce`方法对数组中的每个元素执行一个函数,将其累积到单个返回值。这个函数接受两个参数:累积值和当前元素。例如,计算数组元素的总和:
```javascript
var numbers = [1, 2, 3, 4, 5];
var sum = numbers.reduce(function(total, current) {
return total + current;
}, 0);
console.log(sum); // 输出:15
```
在这里,初始累积值设置为0,然后函数每次迭代时将当前元素加到总和中。
总结
这五个方法——`indexOf`、`filter`、`forEach`、`map`和`reduce`——都是ECMAScript 5引入的增强数组处理的功能,它们极大地提高了处理数组的效率和便利性。随着现代浏览器对这些方法的广泛支持,开发者可以更轻松地利用它们来编写简洁、高效的代码,减少对额外库的依赖。通过熟练掌握这些方法,你可以提升你的JavaScript编程技能,更好地应对各种开发场景。
2020-10-26 上传
2022-07-11 上传
点击了解资源详情
点击了解资源详情
2021-03-11 上传
2020-10-14 上传
2021-03-17 上传
2020-12-11 上传
2023-03-01 上传
weixin_38724363
- 粉丝: 5
- 资源: 972
最新资源
- 基于RGB空间的彩色图像处理GUI设计.pdf
- RapidWebSpherePortletFactory
- 物流信息系统的设计与实现
- 高速串行背板总线的仿真设计
- ssh框架集成的详细说明
- 基于模糊神经网络的多传感器自适应
- 模糊神经网络信息融合在移动机器人的应用
- FIFO算法的c++实现
- 运筹案例分析详细车车
- 二叉树的遍历代码(递归)
- VB与单片机之间通信-RS232
- 让CPU占用率曲线听你指挥
- 用c++解决饮料供货的问题
- 《ajax框架:dwr与ext》实战
- pci_cust_tutorial.pdf
- O' Reilly - Practical C Programming 3rd Edition