软通动力2(单题)

题型 难易度 出现频率 浏览 评论
问答题 53 0
试题信息收集不易,转发请带上出处,不甚感谢!如果您对任何编程问题还有疑问,欢迎点击下方按钮向老师提问!
问答题

这种题目看似很简单,其实有陷阱。要考虑性能最佳。

方法(一)

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 newArray=Array.from(new Set([1,2,3,3,4,4,4,5]))

使用es6提供的Set对象,效率是最高的。


还能输入{{limitInput-commentDet.length}}个字符