學習javaScript資料結構與演算法

2021-08-18 10:34:57 字數 1747 閱讀 5616

建立陣列

var members = [0, 1, 2, 3, 4, 5, 6, 7, 8 , 9, 10]

新增元素

向陣列末尾新增:members.push(11)

向陣列開頭新增:members.unshift(-1)

刪除元素

從陣列末尾刪除:members.pop()

從陣列開頭刪除:members.shift()

tips:通過push 和 pop,就能用陣列來模擬棧; 通過unshift 和  shift, 就能用陣列來模擬佇列

在陣列中的任意位置新增或者刪除元素

使用splice,通過指定位置/索引,來刪除對應位置和數量的元素

members.splice(5, 3) 【刪除從陣列索引5開始的3個元素】

eg.[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8 , 9, 10, 11]  =》 [-1, 0, 1, 2, 3, 7, 8 , 9, 10, 11]

members.splice(5, 0, 4, 5, 6) 【插入從陣列索引5開始,刪除0個元素,插入4,5,6 元素】

eg. [-1, 0, 1, 2, 3, 7, 8 , 9, 10, 11]  =》 [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8 , 9, 10, 11]

tips: 這裡splice方法接收的三個引數,第乙個是插入或者刪除開始位置的索引,第二個是刪除元素的個數,第三個是新增到陣列裡的元素的值

陣列還有更多核心方法

every 對陣列中的每一項執行給定函式,如果該函式對每一項都返回true,則返回true

some 對陣列中的每一項執行給定的函式,如果任一項返回true,則返回true

filter 對陣列中的每一項執行給定函式,返回該函式會返回true的元素組成的陣列

map 對陣列中的每一項執行給定函式,返回每次函式呼叫的結果組成的陣列

foreach 對陣列中的每一項執行給定函式,沒有返回值

indexof 返回第乙個與給定引數相等的陣列元素的索引,沒有找到則返回-1

lastindexof 返回在陣列中搜尋到的與給定引數相等的元素的索引中最大的值【其實就是從陣列末尾開始查詢到的第乙個匹配的索引】

reverse 顛倒陣列中元素的順序

sort 按照字母順序對陣列進行排序,支援傳入指定排序方法的函式作為引數

slice 傳入索引值,將陣列裡對應索引範圍內的元素作為新陣列返回

join 將陣列元素通過某個字元鏈結成字串

tostring 將陣列作為字串返回

valueof 和tostring類似,將陣列作為字串返回(tostring返回物件的字串表示,valueof返回物件的字串、數值或布林值表示)

reduce 接收乙個函式作為引數,這個函式有四個引數,previousvalue,currentvalue, index, array,這個函式會返回乙個將被疊加到累加器的值,reduce方法停止執行後會返回這個累加器【如果需要對乙個陣列所有元素求和,這個方法就很有用】

後進先出

先進先出

鍊錶相對陣列最重要的優點就是無需移動鍊錶中的元素就可輕鬆新增和移除元素,因此當你需要新增和移除很多元素時,最好的選擇就是鍊錶,而非陣列。

概念:由一組無序且唯一的項組成。

儲存形式:set:[值,值] 對

儲存形式:map:[鍵,值] 對

hastable類,也叫hashmap類,是dictionary類的一種雜湊實現方式。

雜湊演算法的作用是盡可能快的在資料結構中找到乙個值。

JavaScript學習 資料型別

二 複雜資料型別 object 三 檢視資料型別 var a 2 var a jhbvb 特點 只有true和false。var a true var b false 特點 變數內為空。多用來清空變數 var a null 特點 變數內未賦值。var a console.log a 結果為 unde...

PyTables學習 (資料儲存形式,物件樹結構)

參考自 pytables的主要目的是提供乙個好的操作hdf5檔案的方法。hdf檔案是分層資料格式 hierarchical data format 的簡稱。資料主要由組 groups 和資料集 datasets 組成。其中,組的作用類似於資料夾,用於包含資料集或者其他組。組之間層層包含,構成了分層次...

clickhouse insert的資料結構

clickhouse insert大致分為兩部分 1.sql語句部分 insert into table f1,f2 2.資料部分資料部分又分為3部分 頭,資料,尾 資料頭 資料塊1 資料塊2 資料塊n 資料尾從中可以看出 每個insert可以包含多個資料塊,每個資料塊可以包含多行。乙個完整的ins...