假如我们有一个字符串数组,需要过滤掉重复的名字并按字母表将其排序。实现如下:

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"]