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方法得到該字元第一次出現...