filter() JavaScript 函数详解353
filter() 函数是 JavaScript 中的一个内置函数,它用于创建一个新的数组,其中包含满足给定谓词函数的所有元素。## 语法
```javascript
filter(callbackFn(element, index, array))
```
其中:
* `callbackFn`:一个谓词函数,对于数组中的每个元素返回 true 或 false。
* `element`:数组中的当前元素。
* `index`(可选):数组中当前元素的索引。
* `array`(可选):filter() 函数调用的数组。
## 参数
callbackFn 函数必须返回一个布尔值。如果返回 true,则元素将包含在结果数组中。否则,元素将被排除。
## 返回值
filter() 函数返回一个由满足谓词函数的所有元素组成的 新数组。
## 示例
```javascript
const numbers = [1, 2, 3, 4, 5, 6, 7];
// 过滤出大于 3 的数字
const greaterThan3 = ((num) => num > 3);
(greaterThan3); // [4, 5, 6, 7]
```
## 进阶用法
使用多个条件
callbackFn 可以包含多个条件语句来检查是否包含元素。
```javascript
const products = [
{ name: "Apple", price: 10 },
{ name: "Orange", price: 5 },
{ name: "Banana", price: 7 },
];
// 过滤出价格大于等于 7 且名称以 "A" 开头的产品
const filteredProducts = (
(product) => >= 7 && ("A")
);
(filteredProducts); // [{ name: "Apple", price: 10 }]
```
使用 index 和 array 参数
index 和 array 参数允许您根据元素的索引或整个数组来过滤。
```javascript
const numbers = [1, 2, 3, 4, 5, 6, 7];
// 过滤出偶数索引的数字
const evenIndexed = ((_, index) => index % 2 === 0);
(evenIndexed); // [1, 3, 5, 7]
// 过滤出数组中最后一个元素
const lastElement = ((_, index, arr) => index === - 1);
(lastElement); // [7]
```
使用箭头函数
ES6 中的箭头函数使 filter() 函数更易于编写和阅读:
```javascript
const numbers = [1, 2, 3, 4, 5, 6, 7];
// 过滤出大于 3 的数字
const greaterThan3 = ((num) => num > 3);
// 过滤出奇数
const oddNumbers = ((num) => num % 2 !== 0);
```
使用 forEach()
filter() 函数还可以与 forEach() 函数结合使用,以便在满足条件的元素上执行操作。
```javascript
const numbers = [1, 2, 3, 4, 5, 6, 7];
// 计算所有大于 3 的数字的总和
const sum = ((num) => num > 3).reduce((acc, num) => acc + num, 0);
(sum); // 25
```
## 性能注意事项
filter() 函数的时间复杂度为 O(n),其中 n 是数组中的元素数。因此,在处理大型数组时,建议使用高效的替代方案,例如 () 或 ()。
## 结论
filter() 函数是 JavaScript 中一个功能强大的工具,用于过滤数组中的元素并创建包含满足给定条件的新数组。通过理解其语法、参数、用法和性能注意事项,您可以有效地使用 filter() 函数来处理和操作您的大型数据集。
2025-01-14
JavaScript 字符串截取神器:深入解析 substring(),兼谈与 slice()、substr() 的异同
https://jb123.cn/javascript/72646.html
告别硬编码!用脚本语言打造灵活高效的Web参数配置之道
https://jb123.cn/jiaobenyuyan/72645.html
JavaScript数字键盘事件:精准捕获与优雅控制,提升用户体验的秘密武器!
https://jb123.cn/javascript/72644.html
后端利器大盘点:选择最适合你的服务器脚本语言!
https://jb123.cn/jiaobenyuyan/72643.html
Python学习之路:从入门到精通,经典书籍助你进阶!
https://jb123.cn/python/72642.html
热门文章
JavaScript (JS) 中的 JSF (JavaServer Faces)
https://jb123.cn/javascript/25790.html
JavaScript 枚举:全面指南
https://jb123.cn/javascript/24141.html
JavaScript 逻辑与:学习布尔表达式的基础
https://jb123.cn/javascript/20993.html
JavaScript 中保留小数的技巧
https://jb123.cn/javascript/18603.html
JavaScript 调试神器:步步掌握开发调试技巧
https://jb123.cn/javascript/4718.html