js filter函数的用法

JavaScript中的filter函数用于过滤数组中符合特定条件的元素,并返回一个由满足条件的元素组成的新数组。其基本用法如下:

array.filter(callback(currentValue, index, array), thisArg)

参数说明:

  • callback:一个必需参数,是一个函数,该函数会被数组的每个元素调用一次。这个函数接收三个参数:

  • currentValue:当前正在处理的元素。

  • index(可选):当前正在处理的元素的索引。

  • array(可选):callback被调用的数组。

  • thisArg(可选):执行callback时使用的this值。

返回值:

filter函数返回一个新数组,包含所有通过callback函数测试为true的元素。原始数组不会被改变。

示例:

const numbers = [1, 2, 3, 4, 5];
const filteredNumbers = numbers.filter(function(number) {
  return number > 3;
});
console.log(filteredNumbers); // 输出: [4, 5]

在这个例子中,filter方法接收一个匿名函数作为参数,该函数检查每个数字是否大于3。只有大于3的数字才会被包含在返回的新数组中。

更多示例:

// 过滤出数组中的偶数
const arr = [1, 2, 3, 4, 5, 6];
const evenNumbers = arr.filter(x => x % 2 === 0);
console.log(evenNumbers); // 输出: [2, 4, 6]

// 过滤掉数组中的空字符串和null
const arrWithEmptyStrings = ['A', '', 'B', null, undefined, 'C', ' '];
const filteredArr = arrWithEmptyStrings.filter(s => s && s.trim());
console.log(filteredArr); // 输出: ['A', 'B', 'C']

// 过滤掉对象数组中不符合条件的对象
const arrOfObjects = [
  { "id": 2, "key": "mobile", "Configable": false, "isRequired": true },
  { "id": 4, "key": "address", "Configable": false, "isRequired": true },
  { "id": 6, "key": "faceInfo", "Configable": true, "isRequired": true }
];
const filteredObjects = arrOfObjects.filter(item => item.key === "faceInfo");
console.log(filteredObjects); // 输出: [{ "id": 6, "key": "faceInfo", "Configable": true, "isRequired": true }]

通过这些示例,你可以看到filter函数在处理不同类型的数据和不同过滤条件时的应用。

Top