JS JavaScript中去除数组中重复元素的方法
感觉比较好理解的3种方法,总结一下,大家共同学习
方法一:
Array.prototype.method1 = function(){
var arr=[]; //定义一个临时数组
for(var i = 0; i < this.length; i++){ //循环遍历当前数组
//判断当前数组下标为i的元素是否已经保存到临时数组
//如果已保存,则跳过,否则将此元素保存到临时数组中
if(arr.indexOf(this[i]) == -1){
arr.push(this[i]);
}
}
return arr;
}
方法二:
Set数据结构,它类似于数组,其成员的值都是唯一的。利用Array.from将Set结构转换成数组
// formatDedupeArr(array)==[ 1, 2, 3, 23 ]
function dedupe(array){
return Array.from(new Set(array));
//这里的 Array.from()方法是将两类对象转为真正的数组:类似数组的对象和可遍历的对象(包括es6新增的数据结构Set和Map)
}
参考:https://www.cnblogs.com/shj-com/p/7458510.html
formatDedupeArr2 () {
let arr = [1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 2, 2, 1, 23, 1, 23, 2, 3, 2, 3, 2, 3]
let resultarr = [...new Set(arr)]
console.log(resultarr) // [1,2,3,23]
return resultarr
}
参考:https://blog.csdn.net/ly124100427/article/details/82217947/
方法三:
// 将相同的值相邻,然后遍历去除重复值
function unique4(array){
array.sort();
var re=[array[0]];
for(var i = 1; i < array.length; i++){
if( array[i] !== re[re.length-1])
{
re.push(array[i]);
}
}
return re;
}
参考:https://blog.csdn.net/qq_36803558/article/details/83026296
我是土豆,下次见!