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 的元素,返回一个新数组。