假如我们有一个字符串数组,需要过滤掉重复的名字并按字母表将其排序。实现如下:
const names = ['D.O', 'K.O', 'LAY', 'KAI', 'IU', 'D.O', 'K.O', 'IU']
-
使用
Array.prototype.filter
它将基于我们传递的回调方法返回一个新的过滤后的数组。回调方法将比较当前关键字在原始列表里的索引和新列表中的索引,仅当索引匹配时将当前关键字push
到新数组。它不会改变原始数组。 -
使用
Array.prototype.sort
方法排序过滤后的列表,sort
只接受一个比较方法作为参数,并返回按字母表排序后的列表。
const filteredAndSortedNames = names
.filter((item, index) => names.lastIndexOf(item) === index)
.sort((a, b) => (a < b ? -1 : 1))
// 过滤和排序后的 JavaScript 保留字列表
console.log(filteredAndSortedNames) // ["D.O", "IU", "K.O", "KAI", "LAY"]