JavaScript去掉数组中的重复元素
2018-07-20 来源:open-open
题目:去掉数组[4,3,"3",3,5,7,5]中的重复元素,返回[4,3,"3",5,7]
(function() { 'use strict'; function filter1(arr) { var b = []; arr.forEach(function(i) { if (b.indexOf(i) == -1) { b.push(i); } }); return b; } function filter2(arr) { var b = {}, c = []; arr.forEach(function(i) { b[i] = b[i] ? b[i] : {}; var type = typeof i; if (!b[i][type]) { b[i][type] = true; c.push(i); } }); return c; } function timer(fn, arr) { console.time('filter'); fn.call(this, arr); console.timeEnd('filter'); } function testArr(n) { // var arr = [4,3,"3",3,5,7,5]; var arr = []; for (var i = 0; i < n; i++) { arr.push(i); arr.push(i + ""); } return arr; } for (var i = 1; i <= 100; i++) { console.log(i * 10); var arr = testArr(i * 10); timer(filter1, arr); timer(filter2, arr); } })();
当数组长度短的时候,经常filter1的速度快于filter2(例如题目中的数组,彩用filter1相对比较快),当数组长度不断增长时,两种方式的差距就体现出来了。
有其它方法否?
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
最新资讯
热门推荐