1.双重循环去重
这个方法使用了两个for循环做遍历
- 构建一个空数组用来存放去重后的数组
- 外面的
for
循环对原数组做遍历,每次从数组中取出一个元素与结果数组做对比 - 如果原数组取出的元素与结果数组元素相同,则跳出循环;反之则将其存放到结果数组中
2. 使用原生的函数 Array.prototype.filter
array.filter(callback,[thisArgs]);
array.filter(function(ele,i,arr){
return XXX;
});
filter
为数组中的每个元素调用一次 callback
函数,并利用所有使得 callback
返回 true 或 等价于 true 的值 的元素创建一个新数组。callback
只会在已经赋值的索引上被调用,对于那些已经被删除或者从未被赋值的索引不会被调用。那些没有通 过 callback
测试的元素会被跳过,不会被包含在新数组中。(filter不会改变原数组)
callback
被调用时传入三个参数:
- 元素的值
- 元素的索引
- 被遍历的数组
如果为 filter
提供一个 thisArg
参数,则它会被作为 callback
被调用时的 this
值。否则,callback
的this
值在非严格模式下将是全局对象,严格模式下为 undefined
。
筛选排除掉所有的小值