<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>数组去重的4种方法</title>
</head>
<body>
<script type="text/javascript">
(function(){
var arr = [12,234,23,12,124,3,23,12,3];
var obj = {};
var newArr = [];
for(var i = 0; i<arr.length; i++){
if(obj[arr[i]]){
obj[arr[i]]+=1; //对象中如果又这个属性,就加1
}else{
obj[arr[i]] = 1;//没有这个属性就设置成1
}
}
console.log('第一种方法会改变顺序');
console.log(obj);
transform(obj);
//转换成数组
function transform(obj){
var arr = [];
for(var item in obj){
arr.push(item);
}
console.log(arr);
}
})();
(function(){
var arr = [12,234,23,12,124,3,23,12,3];
var newArr = [];
var obj = {};
for(var i = 0; i<arr.length; i++){
if(newArr.indexOf(arr[i]) < 0){
newArr.push(arr[i]);
obj[arr[i]] = 1;
}else{
obj[arr[i]]++;
}
}
console.log('第二种方法不会改变顺序');
console.log(newArr);
//存的是每个元素出现的次数
console.log(obj);
})();
(function(){
var arr = [12,234,23,12,124,3,23,12,3];
var re = [];
//先对数组进行排序,不能随机
arr.sort(function(a,b){
return a-b;
});
re[0] = arr[0];
for(var i = 1; i<arr.length; i++){
if(arr[i] !== re[re.length-1]){
re.push(arr[i])
}
}
console.log('第三种方法会改变顺序');
console.log(re);
})();
(function(){
var arr = [12,234,23,12,124,3,23,12,3];
for(var i = 0; i<arr.length;i++){
removeArr(i);
}
function removeArr(index){
var conts = arr[index];
index = index + 1;
while(arr.indexOf(conts,index) >= 0){ //从当前位置向后找
index = arr.indexOf(conts,index); //找到后保存其位置
arr.splice(index,1);//删除这位
}
}
console.log('第四种方法不改变顺序');
console.log(arr);
})();
</script>
</body>
</html>
数组去重
最新推荐文章于 2025-05-18 15:01:31 发布