filter 是 JavaScript 数组的一个内置方法,用于筛选出符合条件的元素,返回一个新数组。
基本语法
array.filter(function(element, index, array) {
// 返回 true → 保留该元素
// 返回 false → 剔除该元素
})
最简单的例子
const numbers = [1, 2, 3, 4, 5]
//筛选出偶数
//n 表示 numbers[] 数组中的每个元素。
const evens = numbers.filter(n => n % 2 === 0)
// 结果:[2, 4]
// 筛选出大于3的数
const big = numbers.filter(n => n > 3)
// 结果:[4, 5]
在你的代码中的应用
function x_(e) {
return function(t) {
return t.filter(function(item) {
return !A_(e, item.name)
// 返回 true → 保留(不匹配排除条件)
// 返回 false → 剔除(匹配排除条件)
})
}
}
// 示例
const items = [
{name: "zh-CN"},
{name: "zh-HK"},
{name: "en-US"}
]
const result = x_("zh-HK")(items)
// 等价于:
// items.filter(item => !A_("zh-HK", item.name))
// 结果:[{name: "zh-CN"}, {name: "en-US"}]
// "zh-HK" 被剔除
filter 的特点
| 特性 | 说明 |
|---|---|
| 不改变原数组 | 返回新数组,原数组不变 |
| 返回新数组 | 即使没有匹配项,也返回空数组 [] |
| 回调返回布尔值 | true 保留,false 剔除 |
| 可链式调用 | .filter().map().reduce() |
一句话
filter 遍历数组,保留回调返回 true 的元素,剔除返回 false 的元素,返回一个新数组。
