JavaScript 数组去重
🌙
手机阅读
本文目录结构
问题
数组去重,注意3和"3"的两种类型,还可以引申到有对象类型时的去重;(如果不新建新的数组,该怎么写?)
第1种
Array.prototype.distinct = function () {
var a = this;
for (let index = 0; index < a.length - 1; index++) {
for (let i = index + 1; i < a.length;) {
if (a[index] == a[i]) {
a.slice(i, 1);
} else {
i++
}
}
}
return a;
}
第二种写法,这种的最好
var arr = [3, 2, 3, 1, 4, true, false, "3", "22", "2", 2]
function norepeat (arr) {
var resArr = [];
var obj = {};
for (var i = 0, len = arr.length; i < len; i++) {
if (!(obj[arr[i] + typeof arr[i]])) {
resArr.push(arr[i]);
obj[arr[i] + typeof arr[i]] = 1;
}
}
return resArr;
}
var res = norepeat(arr);
console.log(res);
第三种写法
function noRepeat (arr) {
var obj = {}
for (var i = 0, len = arr.length; i < len; i++) {
var cur = arr[i];
if (obj[cur] == cur) {
arr.splice(i, 1);
i--;
continue;
}
obj[cur] = cur;
}
return = null;
}
更多面试题
如果你想了解更多的前端面试题,可以查看本站的WEB前端面试题 ,这里基本包涵了市场上的所有前端方面的面试题,也有一些大公司的面试图,可以让你面试更加顺利。
面试题 | ||
---|---|---|
HTML | CSS | JavaScript |
jQuery | Vue.js | React |
算法 | HTTP | Babel |
BootStrap | Electron | Gulp |
Node.js | 前端经验相关 | 前端综合 |
Webpack | 微信小程序 | - |
这些题库还在更新中,如果你有不错的面试题库欢迎分享给我,我整理后放上来;人人为我,我为人人,互帮互助,共同提高,祝大家都拿到心仪的Offer!