”
兼容性与场景考虑(数组中是否包含对象,NaN等?)
我们要考虑这个数组中是否有null、undefined、NaN、对象如果二者都出现,上面的所有数组去重方法并不是都是适用哦,下面详细说一下。...会被忽略掉
Object 键值对去重 [1, "1", null, undefined, String, /a/, NaN] 全部去重
ES6中的Set去重 [1, "1", null, undefined..., String, String, /a/, /a/, NaN] 对象不去重 NaN 去重
内存考虑(去重复过程中,是想要空间复杂度最低吗?)...以上的所有数组去重方式,应该 Object 对象去重复的方式是时间复杂度是最低的,除了一次遍历时间复杂度为O(n) 后,查找到重复数据的时间复杂度是O(1),类似散列表,大家也可以使用 ES6 中的 Map...参考文章
MDN中一些函数讲解
深入分析数组去重
JavaScript专题之数组去重
排序算法学习总结