> 咕笛老師:此題看著簡單,但要想面試官給你高分還是有難度的。至少也要寫出幾種方法
js
~~~text
var arr=['12','32','89','12','12','78','12','32'];
// 最簡單數組去重法
function unique1(array){
var n = []; //一個新的臨時數組
for(var i = 0; i < array.length; i++){ //遍歷當前數組
if (n.indexOf(array[i]) == -1)
n.push(array[i]);
}
return n;
}
arr=unique1(arr);
// 速度最快, 占空間最多(空間換時間)
function unique2(array){
var n = {}, r = [], type;
for (var i = 0; i < array.length; i++) {
type = typeof array[i];
if (!n[array[i]]) {
n[array[i]] = [type];
r.push(array[i]);
} else if (n[array[i]].indexOf(type) < 0) {
n[array[i]].push(type);
r.push(array[i]);
}
}
return r;
}
//數組下標判斷法
function unique3(array){
var n = [array[0]]; //結果數組
for(var i = 1; i < array.length; i++) { //從第二項開始遍歷
if (array.indexOf(array[i]) == i)
n.push(array[i]);
}
return n;
}
~~~
es6
~~~text
es6方法數組去重
arr = [...new Set(arr)];
es6方法數組去重,第二種方法
arr = Array.from(new Set(arr)); //Array.from()能把set結構轉換為數組
~~~
- js面試題
- 說一下自己常用的es6的功能?
- 頁面渲染html的過程?
- 說一下事件代理?
- 說一下繼承的幾種方式及優缺點?
- 說一下閉包?
- 對JSONP的理解*
- 基本的數據類型有哪些?
- js程序題
- JS找字符串中出現最多的字符
- 數組去重怎么作?
- 變量提升的這道題你會嗎
- 用一段代碼思考this的指向問題
- 這些類型的typeof返回什么值?
- 怎樣添加、移除、移動、復制、創建和查找節點?
- css面試題
- css水平、垂直居中的寫法,請至少寫出4種
- 1rem、1em、1vh、1px各自代表的含義?
- 說一下盒模型?
- 清除浮動的幾種方式,及原理?
- b與strong的區別?
- img中的alt與title屬性?
- 瀏覽器兼容性
- IE6的BUG你都遇過哪些?怎么解決的?
- html面試題
- 對HTML結構語義化的理解?
- 前端工程化面試題
- webpack
- export和export default的區別?
- VueJs面試題
- 基礎
- 生命周期
- vue路由(vue-router)
- 狀態管理(vuex)
- axios
- vue-cli框架
- 前端架構面試題
- HTTP
- get、post的區別
- 你所知道的http的響應碼及含義?