ES5黑魔法filter之数组去重

原创 奔跑的小前端 教程 从心开始 445阅读 2017-05-27 10:06:03 举报

let s = [1, 0, 2, 0,5,4,5,44,5,0,0,0,0,5];
console.log(s.filter((x, i, itm)=> x && itm.indexOf(x) === i));
有且只需要一行代码s.filter((x, i, itm)=> x.toString() && itm.indexOf(x) === i)实现,参考ant源码。是不是很方便+ +!

评论 ( 5 )
最新评论
奔跑的小前端 4F 2017-06-13 14:04:32 5F

非常感谢指出错误地方,已经修改

xudao 2017-06-08 10:58:14 4F

你这个写法有问题,会把所有的0都屏蔽掉

奔跑的小前端 2F 2017-06-02 15:40:17 3F

恩恩,一直都没有这么看,以为是ES6的,受教了

huahua_1994 2017-05-27 23:08:24 2F

filter是ES5的,

守候你的季节 2017-05-27 10:29:40 1F

也可以使用ES6 提供的新的数据结构 Set
const set = new Set([1, 2, 3, 4, 4]);
[...set]
// [1, 2, 3, 4]