sort()
,排好序,而後把數組的當前項和後一項進行比較,相同則使用數組的splice(相同的位置,1)
,可是爲了防止數組塌陷,每次刪除數組元素的時候要把i
的值減一。var ary=[1,23,4,2,33,1,2,44,3,2,3] ary.sort(function(a,b){ return a-b; });//返回的是排好序的數組 for(var i=0;i<ary.length;i++){ if(ary[i]===ary[i+1]) { ary.splice(i,1); i--;//爲了防止數組塌陷 } }
indexOf()
),那麼就把這個數放到新數組裏面,否者就拋棄這個數,相似於前面說的隨機驗證碼var ary=[1,23,4,2,33,1,2,44,3,2,3] var arr2=[]; for(var i=0;i<ary.length;i++){ if(arr2.indexOf(art[i])==-1){ arr2.push(ary[i]); } }
splice()
進行刪除,這裏也要防止數組塌陷;var ary=[1,23,4,2,33,1,2,44,3,2,3] for(var i=0;i<ary.length;i++){ for(var j=i+1;j<ary.length;j++){ if(ary[i]===ary[j]){ ary.splice(j,1); j--; } } }
./[]
屬性來獲取;相同則刪除,也要防止數組塌陷var ary=[1,23,4,2,33,1,2,44,3,2,3] //新建一個對象 var obj={}; for(var i=0;i<ary.length;i++){ var cur=ary[i]; //若是obj【cur】爲真,那就說明對象裏面找到了這個數,重複了 if(obj[cur]){ ary.splice(i,1); i--; }else{ //給對象賦值 說明obj.xxx=undefined 不存在爲假 obj[cur]=cur;//obj【1】=1; } }
var ary=[1,23,4,2,33,1,2,44,3,2,3] var obj={}; for(var i=0;i<ary.length;i++){ var cur=ary[i]; if(obj[cur]){ //每次重複一次,其對應的值加一 obj[cur]++; }else{ //說明沒有重複,個數只有一個 obj[cur]=1; } } var ary2=[]; //對於對象使用in 方法進行遍歷,遍歷獲取的是屬性值 for(var attr in obj){ ary2.push(Number(attr)); }
let arr = [1,2,3,3,2,4,5]; let list = new Set(arr); console.log("list",list); // 1,2,3,4,5
可是對於數據的數據類型是不會進行轉換的,因此必定要注意元素的數據類型是不是一致面試
找出此次考試中,最高分,及最高分出現的次數數組
//思路:所有人的成績是一個數組,這就至關於使用數組去重的方法,找到最高的分數,和其次數,首先找到了去重的數組進行從小到大的排序,獲得次數,而後經過最高分所對應的索引值獲得出現的最高分 var ary = [1, 23, 4, 2, 33, 1, 2, 44, 3, 2, 3]; var obj = {}; for(var i = 0; i < ary.length; i++) { //把數組的值,看成對象的索引賦值給對象,因此經過對象索引獲取的是數組出現的次數 var cur = ary[i]; if(obj[cur]) { //每次重複一次,其對應的值加一 obj[cur]++; } else { //說明沒有重複,個數只有一個 obj[cur] = 1; } } //分數從低到高出現的次數 console.log(obj); var ary2 = []; //對於對象使用in 方法進行遍歷,遍歷獲取的是屬性值 for(var attr in obj) { ary2.push(Number(attr)); } console.log(ary2); //最高分 console.log(ary2[ary2.length-1]); var count=ary2[ary2.length-1]; //最高分出現的次數 console.log(obj[count]);