js實現資料結構--陣列
1 建立陣列:
(1)var days = new Array()
(2)var days = new Array(7),指定陣列的長度
(3)var days = new Array('Sunday', 'Monday', 'Tuesday') 在建立陣列的同時初始化陣列
但在js中不建議這樣建立陣列,最好的建立陣列的方法是:var days = [];
2 訪問陣列元素:訪問陣列元素的方法就是使用平常的方法,用中括號傳遞數值的位置
3 為陣列新增元素:
1) 使用push方法(尾插法):將新的元素新增到陣列的末尾,可以新增任意個元素,返回的是新陣列的長度
語法: Array.push(新元素1, 新元素2,...)
2)使用unshift方法(頭插法):將新的元素新增到陣列的首位,也可以新增任意個元素,返回的是新陣列的長度
語法: Array.unshift(新元素1, 新元素2,....)
4 為陣列刪除元素
1) 使用pop方法(尾部刪除):刪除陣列中最靠後的元素:返回值是被刪除的元素,如果陣列在刪除之前就為空,則返回undefined
語法:Array.pop();
2) 使用shift方法(頭部刪除):刪除陣列中最前面的元素:返回值是被刪除的元素,如果陣列在刪除之前就為空,則返回undefined
語法:Array.shift();
5 為陣列在任意位置新增或者刪除元素
語法:Array.splice()
該方法接受多個引數,第一個引數是想要刪除或者插入的元素的索引值;第二個引數是刪除元素的個數(如果不刪除元素就傳如0);第三個引數以及往後的引數,就是要新增到陣列的元素,返回值是被刪除的元素組成的新陣列
6 其他常用的方法:
1)連線2個或更多陣列,並返回最後組成的陣列
語法:arrayObject.concat(arrayX,arrayX,......,arrayX)將所有的arrayX新增到陣列arrayObject中,arrayX可以是單個物件或者陣列
2)根據一個類陣列物件或者可遍歷物件轉換成一個真正的陣列。
let arrayLike = {
0: 'tom',
1: '65',
2: '男',
3: ['jane','john','Mary'],
'length': 4
}
let arr = Array.from(arrayLike)
console.log(arr) // ['tom','65','男',['jane','john','Mary']]
將一個類陣列物件轉換為一個真正的陣列,必須具備以下條件:
1、該類陣列物件必須具有length屬性,用於指定陣列的長度。如果沒有length屬性,那麼轉換後的陣列是一個空陣列。
2、該類陣列物件的屬性名必須為數值型或字串型的數字
ps: 該類陣列物件的屬性名可以加引號,也可以不加引號
Array.from還可以接受第二個引數,作用類似於陣列的map方法,用來對每個元素進行處理,將處理後的值放入返回的陣列。如下:
let arr = [12,45,97,9797,564,134,45642]
let set = new Set(arr)
console.log(Array.from(set, item => item + 1)) // [ 13, 46, 98, 9798, 565, 135, 45643 ]
將字串轉換為陣列:
let str = 'hello world!';
console.log(Array.from(str)) // ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", "!"]
簡單應用:複製陣列 var days2 = Array.from(days)
3)Array.of() 方法用於將一組值,轉換為陣列;Array.of總是返回引數值組成的陣列。如果沒有引數,就返回一個空陣列
語法:Array.of(element0[, element1[, ...[, elementN]]]) 返回值是新的陣列例項
4)Array.fill()函式,使用制定的元素填充陣列,其實就是用預設內容初始化陣列。
語法:該函式有三個引數。
arr.fill(value, start, end)
value:填充值。
start:填充起始位置,可以省略。
end:填充結束位置(不包括該位置),可以省略,實際結束位置是end-1。
如果起始位置和結束位置都被省略了,則預設的是填充整個陣列,或者省略結束位置就是填充到陣列的末尾
簡單應用:建立陣列並進行初始化:let ones = Array(6).fill(2)建立了一個長度為6,所有元素都為2的陣列
5)copyWithin()函式,在當前陣列內部,將指定位置的成員複製到其他位置(會覆蓋原有成員),然後返回當前陣列
語法:Array.prototype.copyWithin(target, start = 0, end = this.length)
它接受三個引數。
target(必需):從該位置開始替換資料。
start(可選):從該位置開始讀取資料,預設為0。如果為負值,表示倒數。
end(可選):到該位置前停止讀取資料,預設等於陣列長度。如果為負值,表示倒數。
例:[1, 2, 3, 4, 5].copyWithin(0, 3)// [4, 5, 3, 4, 5]
6)陣列排序:
Array.reverse():陣列元素反序,返回的是陣列元素順序反過來的原陣列
Array.sort():方法用於對陣列的元素進行排序,並返回陣列。預設排序順序是根據字串Unicode碼點。
語法:arrayObject.sort(sortby);引數sortby可選。規定排序順序。必須是函式
如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,說得更精確點,是按照字元編碼的順序進行排序。
要實現這一點,首先應把陣列的元素都轉換成字串(如有必要),以便進行比較
7)陣列搜尋
Array.indexOf(引數):返回與引數匹配的第一個元素的索引,找不到的返回undefined
Array.lastIndexOf(引數):返回與引數匹配的最後一個元素的索引,找不到的返回-1
Array.find(回撥函式):搜尋一個滿足回撥函式條件的值,返回值是第一個滿足條件的值,找不到的返回undefined
Array.findIndex(回撥函式):搜尋一個滿足回撥函式條件的索引值,返回的是第一個滿足條件的值的索引,找不到的返回-1
Array.includes():返回布林值表示是否找到了引數字串
Array.toString():將陣列元素轉換成一個字串,返回該字串
Array.join(分隔符):使用分隔符將陣列元素隔開,返回隔開後的物件
相關文章
- JS資料結構(一)——陣列JS資料結構陣列
- 資料結構之php實現陣列資料結構PHP陣列
- js實現資料結構--佇列JS資料結構佇列
- 資料結構實驗 多維陣列的實現資料結構陣列
- java 資料結構實現陣列封裝 (一)Java資料結構陣列封裝
- 資料結構-js實現棧和佇列資料結構JS佇列
- 資料結構--單連結串列(通過陣列實現)資料結構陣列
- 資料結構 - 陣列資料結構陣列
- 資料結構-陣列資料結構陣列
- 資料結構之「陣列」資料結構陣列
- 資料結構之陣列資料結構陣列
- 資料結構2——陣列資料結構陣列
- Java資料結構-陣列Java資料結構陣列
- js實現資料結構--棧JS資料結構
- 資料結構與演算法系列(一)陣列實現資料結構演算法陣列
- 資料結構-棧(通過陣列和單向連結串列實現)資料結構陣列
- Java版-資料結構-陣列Java資料結構陣列
- JavaScript資料結構01 - 陣列JavaScript資料結構陣列
- 資料結構——樹狀陣列資料結構陣列
- 剖析JS和Redis的資料結構設計:陣列JSRedis資料結構陣列
- js資料結構與演算法 陣列、棧部分JS資料結構演算法陣列
- 資料結構之C語言模擬整數陣列實現資料結構C語言陣列
- Java版-資料結構-佇列(陣列佇列)Java資料結構佇列陣列
- js 中基礎資料結構陣列去重問題JS資料結構陣列
- 玩轉資料結構之陣列資料結構陣列
- 基礎資料結構之陣列資料結構陣列
- pyspark 解析kafka陣列結構資料SparkKafka陣列
- JavaScript資料結構之陣列棧佇列JavaScript資料結構陣列佇列
- 資料結構之php實現佇列資料結構PHP佇列
- js實現資料結構--單連結串列JS資料結構
- 【從蛋殼到滿天飛】JS 資料結構解析和演算法實現-Arrays(陣列)JS資料結構演算法陣列
- 每日一道演算法題之陣列實現資料結構演算法陣列資料結構
- 資料結構之陣列和連結串列資料結構陣列
- js資料結構--佇列(queue)JS資料結構佇列
- 資料結構實驗 二維矩陣的實現資料結構矩陣
- 【php實現資料結構】鏈式佇列PHP資料結構佇列
- 資料結構與演算法——陣列資料結構演算法陣列
- LeetCode之資料結構——陣列LeetCode資料結構陣列