JavaScript Array sort() 方法 (數(shù)組常用)
數(shù)組常用方法
push() 結(jié)尾插入
unshift() 頭部插入
pop() 刪除尾部
splice(index,n,value) index-> 數(shù)組的位置 可以為負(fù)數(shù)(從數(shù)組結(jié)尾開始數(shù)) n-> 刪除幾個(gè)元素 value -> 添加的元素
filter 對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回該函數(shù)會(huì)返回 true的項(xiàng)組成的數(shù)組(可用于返回某數(shù)組中所有滿足某個(gè)條件的值)
Map
按字母排序
const a = [a,d,b,e,c]
a.sort()
排序時(shí)特殊例子
['Micsoft','Null','apple'].sort()
// 輸出順序?yàn)?apple 在最后 因?yàn)?sort 方法是按ASCII碼進(jìn)行比較的
[10,20,1,2].sort()
// 輸出的順序?yàn)?1,10,2,20 sort將數(shù)字轉(zhuǎn)化為字符串在進(jìn)行比較
升序和降序都不能直接使用 sort() 不然會(huì)在數(shù)組中有負(fù)數(shù)時(shí)出錯(cuò)
升序排列(數(shù)字)
const a = [1,3,-3,-1,6,4,2]
a.sort((a,b) => a-b )
降序排列(數(shù)字)
const a = [1,3,-3,-1,6,4,2]
a.sort((a,b) => b-a )
逆序
const a = [1,3,-3,-1,6,4,2]
a.reverse()
數(shù)組合并
const a = [1,3,-3,-1,6,4,2]
const b = [9,7,-4,-8]
const c = a.concat(b)
拓補(bǔ)排序(有向無環(huán)圖)
看到題中有依賴關(guān)系時(shí) -> 拓?fù)渑判?/h5>
拓?fù)渑判騿栴}步驟
- 根據(jù)依賴關(guān)系,構(gòu)建鄰接表、入度數(shù)組。
- 選取入度為 0 的數(shù)據(jù),根據(jù)鄰接表,減小依賴它的數(shù)據(jù)的入度。
- 找出入度變?yōu)?0 的數(shù)據(jù),重復(fù)第 2 步。
- 直至所有數(shù)據(jù)的入度為 0,得到排序,如果還有數(shù)據(jù)的入度不為 0,說明圖中存在環(huán)
二分法 (縮小查找范圍)
一般定義三個(gè)變量
const left = 0
const right = "數(shù)組或鏈表長度"
const n = Math.floor(left + (right-left)/2)
while (left < right) {
// 判斷 直至 left == right
}