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