<!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>
數組去重
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.