JavaScript数组去重方法
改变原数组去重:
var arr=[1,4,2,3,1,4,2,1,2,3,4,1,1,2,3,2,1];
function removeDuplication(arr){
for(var i=0 ;i<arr.length;i++){
for(var j=i+1 ;j<arr.length;j++){
if (arr[i]===arr[j]){
arr.splice(j,1)
j--;
}
}
}
return arr;
}
var arr1=removeDuplication(arr);
console.log(arr1)
不改变原数组去重:
方法一:
var arr=[1,4,2,3,1,4,2,1,2,3,4,1,1,2,3,2,1];
function removeDuplication(arr){
var arr1=[];
var bool=true;
for(var i=0,j ;i<arr.length;i++){
bool=true;
for(j=0 ;j<arr1.length;j++){
if (arr[i]===arr1[j]) bool=false;
}
if(bool) arr1.push(arr[i]);
}
return arr1;
}
var arr1=removeDuplication(arr);
console.log(arr1)
方法二:
var arr=[1,4,2,3,1,4,2,1,2,3,4,1,1,2,3,2,1];
function removeDuplication(arr){
var arr1=[];
for(var i=0 ;i<arr.length;i++){
if(arr1.indexOf(arr[i])<0) arr1.push(arr[i])
}
return arr1;
}
var arr1=removeDuplication(arr);
console.log(arr1)
案例:将元素分别重复几次转换为对象,展示出来
var arr=[1,4,2,3,1,4,2,1,2,3,4,1,1,2,3,2,1];
function getDuplicationNum(arr){
var obj={};
for(var i=0;i<arr.length;i++){
if(!obj[arr[i]])obj[arr[i]]=1;
else obj[arr[i]]++;
}
return obj;
}
var obj=getDuplicationNum(arr);
console.log(obj);
案例:实现点击某个li内容变红,点击下一个时,下一个变红,之前的恢复黑色
var lis=document.getElementsByTagName("li");
lis=Array.from(lis);
var prev;
for(var i=0;i<lis.length;i++){
lis[i].onclick=clickhandler;
}
function clickhandler(){
if(prev){
prev.style.color="black";
}
prev=this;
prev.style.color="red";
}