深圳市番趣互动娱乐有限公司(单题)
题型 | 难易度 | 出现频率 | 浏览 | 评论 |
---|---|---|---|---|
问答题 | 32 | 0 |
试题信息收集不易,转发请带上出处,不甚感谢!如果您对任何编程问题还有疑问,欢迎点击下方按钮向老师提问!
问答题
- 对以下数组进行去重 let ary=[1,2,3,3,4,4,4,5];
这种题目看似很简单,其实有陷阱。要考虑性能最佳。
方法(一)
let ary=[1,2,3,3,4,4,4,5];
var obj={};
var newArray=[];//判断是否重复
var len=ary.length;
for(var i=0;i<len;i++){
var key=ary[i];
if(!obj[key+""]){
newArray.push(key);
obj[key+""]=true;
}
}
思路:将数组中的元素变为对象的key,每次比较与对象的key做比较(查找key是非常快的),如果有就不加到新数组否则加上,这样就快速的做到了去重的目的。
方法(二)
let ary=[1,2,3,3,4,4,4,5];
var set=new Set([1,2,3,3,4,4,4,5])
使用es6提供的Set对象,效率是最高的。