摘要:數(shù)組去重第一種方法先對數(shù)組進行排序,排好序,然后把數(shù)組的當前項和后一項進行比較,相同則使用數(shù)組的相同的位置,,但是為了防止數(shù)組塌陷,每次刪除數(shù)組元素的時候要把的值減一。
數(shù)組去重
第一種方法:
先對數(shù)組進行排序sort(),排好序,然后把數(shù)組的當前項和后一項進行比較,相同則使用數(shù)組的splice(相同的位置,1),但是為了防止數(shù)組塌陷,每次刪除數(shù)組元素的時候要把i的值減一。
var ary=[1,23,4,2,33,1,2,44,3,2,3] ary.sort(function(a,b){ return a-b; });//返回的是排好序的數(shù)組 for(var i=0;i第二種方法是:建立一個新數(shù)組,要是原數(shù)組里面的數(shù)是頭一次出現(xiàn)(使用數(shù)組的indexOf()),那么就把這個數(shù)放到新數(shù)組里面,否者就拋棄這個數(shù),類似于前面說的隨機驗證碼
var ary=[1,23,4,2,33,1,2,44,3,2,3] var arr2=[]; for(var i=0;i第三種方法:直接拿當前項與后一項進行比較,相同的要刪除,使用數(shù)組splice()進行刪除,這里也要防止數(shù)組塌陷;
var ary=[1,23,4,2,33,1,2,44,3,2,3] for(var i=0;i第四種方法:利用對象不重名的特性,對象的存儲是鍵值對方式,要獲取屬性值,要通過對象./[]屬性來獲??;相同則刪除,也要防止數(shù)組塌陷
var ary=[1,23,4,2,33,1,2,44,3,2,3] //新建一個對象 var obj={}; for(var i=0;i第五種方法:也是利用對象不重名的方法,但是這次是直接計算其數(shù)組各個數(shù)的重復次數(shù),
var ary=[1,23,4,2,33,1,2,44,3,2,3] var obj={}; for(var i=0;i第六種方法:使用ES6中的Set數(shù)據(jù)結(jié)構(gòu)中重復項不生效的特性
let arr = [1,2,3,3,2,4,5]; let list = new Set(arr); console.log("list",list); // 1,2,3,4,5但是對于數(shù)據(jù)的數(shù)據(jù)類型是不會進行轉(zhuǎn)換的,所以一定要注意元素的數(shù)據(jù)類型是否是一致
數(shù)組去重的面試題:找出這次考試中,最高分,及最高分出現(xiàn)的次數(shù)
//思路:全部人的成績是一個數(shù)組,這就相當于使用數(shù)組去重的方法,找到最高的分數(shù),和其次數(shù),首先找到了去重的數(shù)組進行從小到大的排序,得到次數(shù),然后通過最高分所對應的索引值得到出現(xiàn)的最高分 var ary = [1, 23, 4, 2, 33, 1, 2, 44, 3, 2, 3]; var obj = {}; for(var i = 0; i < ary.length; i++) { //把數(shù)組的值,當作對象的索引賦值給對象,所以通過對象索引獲取的是數(shù)組出現(xiàn)的次數(shù) var cur = ary[i]; if(obj[cur]) { //每次重復一次,其對應的值加一 obj[cur]++; } else { //說明沒有重復,個數(shù)只有一個 obj[cur] = 1; } } //分數(shù)從低到高出現(xiàn)的次數(shù) 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]; //最高分出現(xiàn)的次數(shù) console.log(obj[count]);
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/89563.html
摘要:區(qū)別對象和數(shù)組的六種方法方法一利用方法通過調(diào)用方法試著將該變量轉(zhuǎn)化為代表其類型的。該方法對于真正的可行參數(shù)對象轉(zhuǎn)化為時返回會轉(zhuǎn)化失敗此外,對于含有數(shù)字長度屬性的類也會轉(zhuǎn)化失敗。 區(qū)別對象和數(shù)組的六種方法(1)方法一:利用toString方法通過調(diào)用toString( )方法試著將該變量轉(zhuǎn)化為代表其類型的string。該方法對于真正的array可行;參數(shù)對象轉(zhuǎn)化為string時返回[ob...
摘要:專題系列第三篇,講解各種數(shù)組去重方法,并且跟著寫一個前言數(shù)組去重方法老生常談,既然是常談,我也來談談。它類似于數(shù)組,但是成員的值都是唯一的,沒有重復的值。 JavaScript 專題系列第三篇,講解各種數(shù)組去重方法,并且跟著 underscore 寫一個 unique API 前言 數(shù)組去重方法老生常談,既然是常談,我也來談談。 雙層循環(huán) 也許我們首先想到的是使用 indexOf 來循...
摘要:數(shù)組去重方法的總結(jié)前言在中數(shù)組是比較常用的,本文中總結(jié)了下數(shù)組去重的幾種常用方法,如有問題,請指正。 JavaScript數(shù)組去重方法的總結(jié) 前言 在JavaScript中數(shù)組是比較常用的,本文中總結(jié)了下數(shù)組去重的幾種常用方法,如有問題,請指正。 簡單粗暴的一種,ES6中set方法: var arr = [1,2,2,3,3,4,5,5]; console.log([...new Se...
摘要:對象構(gòu)造函數(shù)的判斷用法的每個實例都有構(gòu)造函數(shù),用于保存著用于創(chuàng)建當前對象的函數(shù)如上所示,的實例的跟對象是相等的那么我們就可以用此來判斷數(shù)組了原型鏈上的用法屬性表示構(gòu)造函數(shù)的原型其中有一個方法是用于測試一個對象是否存在于另一個對象的原型鏈上。 在JS中,數(shù)組是屬于Object類型的,也就是屬于引用類型(引用類型存放在堆內(nèi)存中,在棧內(nèi)存會有一個或者多個地址來指向這個堆內(nèi)存)。 所以對于引用...
摘要:現(xiàn)在要求去重下面這個數(shù)組測試重復重復方法一測試重復重復去重后測試重復是新加的集合集合中的值不會重復。歡迎大家一起討論提出新的去重方法。有任何錯誤請在評論指出。 現(xiàn)在要求去重下面這個數(shù)組 [1, 2, 3, 3, 3, 0, 1, 2, 測試, 重復, 重復, NaN, NaN, false, false]; 方法一:ES6 Set() let arr = [1, 2, 3, 3, 3,...
閱讀 993·2021-11-04 16:08
閱讀 2972·2021-09-13 10:37
閱讀 506·2019-08-30 15:56
閱讀 1958·2019-08-30 15:55
閱讀 2238·2019-08-30 15:53
閱讀 2080·2019-08-30 13:13
閱讀 2921·2019-08-30 12:51
閱讀 1541·2019-08-29 16:06