📅  最后修改于: 2023-12-03 14:41:00.679000             🧑  作者: Mango
在 JavaScript 中,对于数组的操作是基础中的基础。数组的 filter() 方法是 ES6 中新增的方法之一,它可以筛选出符合条件的数组元素,并返回一个新的数组。
array.filter(callback[, thisArg])
参数:
返回值:
const fruits = ['apple', 'banana', 'grape', 'watermelon', 'strawberry'];
const filteredFruits = fruits.filter(fruit => fruit.length > 5);
console.log(filteredFruits); // ['banana', 'watermelon', 'strawberry']
上述例子中,数组 fruits 中的所有元素都映射到了一个返回值为布尔类型的函数中,并且只有字符长度大于 5 的水果才会被保留到返回的新数组 filteredFruits 中。
const arr = [1, 2, 3, 3, 4, 4, 5];
const uniqueArr = arr.filter((item, index, array) => array.indexOf(item) === index);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
使用 filter() 方法结合 indexOf() 方法即可实现数组去重。
const persons = [
{ name: 'A', age: 25 },
{ name: 'B', age: 18 },
{ name: 'C', age: 30 },
{ name: 'D', age: 16 }
];
const validPersons = persons.filter(person => person.age >= 18); // 仅保留年龄大于等于 18 岁的人
console.log(validPersons); // [{ name: 'A', age: 25 }, { name: 'C', age: 30 }]
上述例子中,我们使用了 filter() 方法结合箭头函数以及 ES6 的对象解构语法,仅保留年龄大于等于 18 岁的人。
filter() 方法不会改变原始数组。它会返回一个新的数组,其中仅仅包含符合条件的元素,同时保持原始数组的顺序不变。如果对新数组进行更改,对原数组无影响。
数组的 filter() 方法非常方便,它可以帮助我们快速筛选出符合条件的数组元素,并返回一个新的数组,同时不会改变原始数组,让我们在实际项目中提高了效率。