数组去重

不用array api
1.双重for循环
2.hashmap方式,需要考虑a[1] == a['1']的情况
function uniq(array){
var temp = {}, r = [], len = array.length, val, type;
for (var i = 0; i < len; i++) {
val = array[i];
type = typeof val;
if (!temp[val]) {
temp[val] = [type];
r.push(val);
} else if (temp[val].indexOf(type) < 0) {
temp[val].push(type);
r.push(val);
}
}
return r;
}

利用array api
1.排序后遍历推入[]
2.set
3.filter(indexof)
4.reduce(indexof)
5.遍历推入(indexof)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.遍历数组法 最简单的去重方法, 实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中;注意点:判...
    LuckyS007阅读 548评论 0 3
  • 数组去重的多种方法 遍历数组法 实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中;注意点:判断值...
    啾啾哒阅读 1,236评论 0 0
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,048评论 0 2
  • 方法一(通过indexOf,返回该数组下表) 方法二(通过sort从小到大排序,然后遍历数组比较相邻元素是否相等)...
    他在发呆阅读 205评论 0 0
  • 2019.08.02补:对象数组建议直接循环然后使用工具库(lodash)的深比较,评论里也有指出,文章的方法有些...
    始悔不悟阅读 61,038评论 13 26