js 陣列 字串 去重

2022-05-31 22:15:09 字數 864 閱讀 6443

array.prototype.unique1 = function()

return n;

}

array.prototype.unique2 = function()

,r=; //n為hash表,r為臨時陣列

for(var i = 0; i < this.length; i++) //遍歷當前陣列 }

return r;

}

array.prototype.unique3 = function()

return n;

}

array.prototype.unique4 = function()

return res;

}

第1種和第3種方法都用到了陣列的indexof方法。此方法的目的是尋找存入引數在陣列中第一次出現的位置。很顯然,js引擎在實現這個方法的時候會遍歷陣列直到找到目標為止。所以此函式會浪費掉很多時間。 而第2中方法用的是hash表。把已經出現過的通過下標的形式存入乙個object內。下標的引用要比用indexof搜尋陣列快的多。但是記憶體占用方面應該第二種方法比較多,因為多了乙個hash表。這就是所謂的空間換時間。

第二種方法可以通過typeof再做細點;不然 new number("1") 和 1 區分不了

/* 氣泡排序 */

function bubblesort(arr)}}

return arr;

}字串去重

1、先轉化為陣列:"aabbcccdd".split("")

2、正則:"aabbcccdd".replace(/(.)(?=.*\1)/g,"")

參考:

字串陣列去重

這裡只考慮最簡單字串的陣列去重,暫不考慮,物件,函式,nan等情況,這種用正則實現起來就吃力不討好了。非正則實現 es6實現 let str arr b c 1,a 3,v 2 e 6 g 9 arr 9,hello 6 9 1 2,6,b c function unique arr console...

2 陣列 字串去重

今天說的陣列和字串去重呢,主要用到es6新的資料結構set,它類似於陣列,但是成員的值都是唯一的,沒有重複的值,所以活用set來進行陣列和字串的去重。1.首先簡單介紹下set的用法 set本身是乙個建構函式,用來生成 set 資料結構。set函式可以接受乙個陣列 或者具有 iterable 介面的其...

字串去重

字串去重,思路是在乙個字串例如 strstrrtsiiiinnnggggg 中,遍歷所有的字元,拼接到stringbuffer中。在執行速度上來看stringbuffer的拼接速度要快與string。通過str.charat i 的方法得到當前遍歷到的字元。通過indexof方法得到該字元第一次出現...