数组去重

基础类型数组去重

const arr = [1, 1, 2, 3, 3, 4, 5]

ES5

function unique(arr) {
  return arr.filter((item, index, array) => array.indexOf(item) === index)
}

ES6

function unique (arr) {
  const seen = new Map()
  return arr.filter((a) => !seen.has(a) && seen.set(a, 1))
}
// or
function unique(array) {
    return [...new Set(array)]
}

复杂类型数组去重

const array = [{value: 1}, {value: 1}, {value: 2}]

ES5

function unique(arr) {
    var obj = {}
    return arr.filter((item, index, array) => !obj.hasOwnProperty(JSON.stringify(item)) && (obj[JSON.stringify(item)] = true))
}

ES6

function unique (arr) {
  const seen = new Map()
  return arr.filter((a) => !seen.has(JSON.stringify(a)) && seen.set(JSON.stringify(a), 1))
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容