js中的Array的empty


聲明一個數組長度的時候,如果這個數組的現有長度小於聲明長度,那么數組后面就會被empty填滿,直到達到聲明長度

正文

因為最近業務中寫到,數據存進一個數組中,數組長度固定,但是數據不一定夠或者數據有可能多。如果數據夠的話,多余的部分就會被截掉,如果數據不夠的時候,后面就會empty

固定數組長度

固定數組長度有兩種方法:

1
2
3
4
5
6

const arr = []
arr.length = 3

// 第二種,構造函數聲明
const arr1 = new Array(4)

 

最后得到的結果都為[empty, empty, empty, empty]

操作含有empty的數組

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const arr = new Array(4)

arr[0] // undefined
Array.from(arr) // 返回一個數組[undefined, undefined, undefined, undefined]
arr.map((item) => item) // 遍歷的那項為空時,返回empty
arr.forEach((item) => item) // 遍歷的那項為空時,返回empty
arr.some((item) => item === undefined) // 遍歷時會跳過為empty的項,如果數組為空則返回false
arr.every((item) => item === undefined) // 遍歷時會跳過為empty的項,如果數組為空則返回true
arr.reduce((a, b) => a + b) // 數組為空時報錯,報錯信息為reduce操作的數組不能為空
arr.find((item) => item === undefined) // 能正常遍歷,並返回找到的值undefined
arr.findIndex((item) => { // 能正常遍歷,並返回找到的值的index
return item === undefined
})
arr.filter((item) => item === undefined)// 遍歷時會跳過為empty的項
arr.join() // 返回一個',,,'的字符串
arr.includes() // 不傳參數時為true,經過測試斷定默認值為undefined
arr.indexOf() // 返回-1,經過測試斷定默認值為undefined,但是它不對空數組判斷
arr.sort() // 能正常排序,為empty的元素會被排序到最后
arr.fill(1) // 數組內所有項都會變成1
// pop, push, shift, unshift的操作都是正常進行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM