介紹一下陣列基本操作的幾個方法
建立陣列
javascript
1 | const arr = [1,2,3,4,5]; |
陣列長度
javascript
1 | console.log(arr.length); // 5 |
設定長度
javascript
1 | const arr = new Array(5); |
空陣列
javascript
1 | const arr = []; |
讀取其中一個元素,索引從零開始,對應第一個元素
javascript
1 | console.log(arr[0]); // 1 |
設定陣列長度可以操作陣列內元素,長度若為零。則輸入空陣列
javascript
1 | arr.length = 0; |
Array.from() 可建立一個新的 Array 實體
1.從字串
javascript
1 | Array.from('Hi'); // ["h", "i"] |
2.從集合:集合會將集合內重複的元素剔除,可作分類使用
javascript
1 | var s = new Set(['hi', 1, 1, 2]); |
3.使用箭頭函式及 Array.from
Code
1 | // 使用箭頭函式作為 map 函式來操作元素 |
其它用法可參考:Array.from()
迭代(讀取每一個值,然後用同樣的方式處理每一個值)
for 迴圈取陣列元素
javascript
1 | const arr = [1,2,3,4,5]; |
foreach:將陣列內每個元素,都傳入並執行指定函式一次。
javascript
1 | // 取陣列中大於 3 的數字 |
方法
push():新增元素
javascript
1 | const arr = [1,2,3,4,5] |
pop():取出陣列最後一個元素並從陣列移除
javascript
1 | const arr = [1,2,3,4,5]; |
concat():合併兩個陣列,並把新的陣列返回
javascript
1 | var a1 = [1, 2]; |
join():把所有的陣列元素合併成字串
javascript
1 | var a = ['Hello', 'world']; |
reverse():反轉陣列元素的順序至適當的位置
javascript
1 | const arr = [1,2,3,4,5]; |
ps.反轉字串應用
javascript
1 | const str = 'Hello'; |
shift():取回陣列的第一個元素並移除
javascript
1 | const arr = [1,2,3,4,5]; |
unshift():在陣列的開頭處加入一個以上的元素
javascript
1 | const arr = [1,2,3,4,5]; |
slice(start_index, upto_index):回傳部分陣列
javascript
1 | const arr = [1,2,3,4,5]; |
splice(start, deleteCount, item1, … ):刪除既有元素/或加入新元素來改變一個陣列的內容
start:開始位置
deleteCount:刪除幾個元素(0 就是不刪除)
item1:要加入的元素
javascript
1 | const arr = [1,2,3,4,5]; |
sort():排序陣列的元素,預設的排序順序是根據字串的 Unicode 編碼位置
javascript
1 | const arr = ['bob', 'alice', 'jack']; |
ps.也可以用函式來決定如何排序(陣列數字排列要用這種方式)
javascript
1 | const arra = [2,6,1,8,10,32]; |
ps.陣列數字找大小:用展開運算子將陣列展開成個別值就可以用函式快速找出
javascript
1 | // 陣列數字找大小 |
indexOf():尋找陣列中是否有符合的元素,回傳 -1,表示沒有,回傳正整數表示在那個位置
javascript
1 | const arr = [1,2,3,4,5]; |
ps.jQuery 用法
javascript
1 | const arr = [1,2,3,4,5]; |
includes:陣列中尋找指定元素,回傳 true(找到)或 false(沒找到)
javascript
1 | const arr = [1,2,3,4,5]; |
filter():回傳符合條件的元素,得到一個新陣列
javascript
1 | const arr = [1,2,3,4,5]; |
indexOf 與 $.map
使用,尋找是否有符合的物件
javascript
1 | const people = [ |
map():原陣列的每一個元素經由回呼函式運算後所回傳的結果之集合成為一個新陣列,常用對陣列元素做加工
javascript
1 | const arr = ['a', 'b', 'c']; |
every():檢查陣列是否全部符合條件,僅會回傳一個值 true or false
javascript
1 | const arr = [1,2,3,4,5]; |
some():檢查陣列元素其中是否有符合條件,僅會回傳一個值 true or false
javascript
1 | const arr = [1,2,3,4,5]; |
reduce():陣列變成個別值,傳入函式內處理。數值加總是常見做法
javascript
1 | const arr = [1,2,3,4,5]; |
ps.陣列扁平化,將複雜的陣列變成一維
javascript
1 | const myArr = [ |
ps.對陣列的內容進行統計
javascript
1 | const myArr = [ |
另一種寫法
Code
1 | countNum(arr) { |
ps. Object 的形式的處理
javascript
1 | const data = { |
map() 和 reduce() 結合使用
javascript
1 | const arr = [1,2,3,4,5,6,7,8,9,10]; |
參考資料
https://www.hexschool.com/2017/09/01/2017-09-01-javascript-for/
http://fred-zone.blogspot.com/2017/01/javascript-mapreduce.html
https://cythilya.github.io/2017/05/08/javascript-find-item-in-an-array/
https://developer.mozilla.org/zh-TW/