方法1:双层for循环加push,添加到新数组
var arra = [1, 2, 3, 4, 4, 1, 1, 2, 1, 1, 1];
var num = [];
for (var i = 0; i < arra.length; i++) {
for (var j = i + 1; j < arra.length; j++) {
if (arra[i] === arra[j]) {
j = ++i;
}
}
num.push(arra[i]);
}
console.log(num);
方法2:数组的filter方法
var arra = [1, 2, 3, 4, 4, 1, 1, 2, 1, 1, 1];
let el = arra.filter((item, index) => arra.indexOf(item) === index);//过滤出来第一次出现的元素
console.log(el);
方法3:数组的forEach加indexOf
var arra = [1, 2, 3, 4, 4, 1, 1, 2, 1, 1, 1];
let indexArr = [];
arra.forEach((item) => {
if (indexArr.indexOf(item) === -1) {//遍历出新数组中没有的元素并且添加进去
indexArr.push(item);
}
});
console.log(indexArr);
方法4:用Set方法去重
var arra = [1, 2, 3, 4, 4, 1, 1, 2, 1, 1, 1];
let el = new Set(arra);
console.log(el);
方法5:原始for循环加splice,此时数组长度减1
var arra = [1, 2, 3, 4, 4, 1, 1, 2, 1, 1, 1];
for (var i = 0; i < arra.length; i++) {
for (var j = i + 1; j < arra.length; j++) {
if (arra[i] === arra[j]) {
arra.splice(j, 1);
j--;
}
}
}
console.log(arra);
方法6:includes
var arra = [1, 2, 3, 4, 4, 1, 1, 2, 1, 1, 1];
var el = [];
for (var i = 0; i < arra.length; i++) {
if (!el.includes(arra[i])) {
el.push(arra[i]);
}
}
console.log(el);