最近写了一道数组去重的题,手抖,紧张,没写好。后来写了一会儿觉得还挺有意义的。现在做一下记录
Test case
测试用例如下
简单去重的几种方法
暂时先只看数组中存number的去重方法:
最粗暴的是这种,利用Set不能有重复数据的特性做
正常思路如下,维护一个暂存数组,将数据存进去
reduce做去重(下面有参考链接),意思是每次往前一个数组中塞数据,其实就是上面正常思路的去中间变量版
这个时候基本int型数据都没什么问题了。
但是我上面测试用例中最后一个用例明显是无法通过的。那么就需要更多的判断
更复杂的去重
先贴代码:
意思是在推进去的时候多做一些判断,主要是对Object和Array的判定。
其中有objects.contains
和arrays.contains
两个方法做判定工作。其实现分别如下
关于array.js和objects.js的测试用例我就不给出了。
反正最后测试都通过了,感觉真好~
References