list
列表操作函數。
創建一個指定長度的數組,並用指定的值填充。
基礎用法
typescript
import { list } from 'radash'
// 創建長度為5的數組,用0填充
const zeros = list(5, 0)
// [0, 0, 0, 0, 0]
// 創建長度為3的數組,用'hello'填充
const greetings = list(3, 'hello')
// ['hello', 'hello', 'hello']
語法
typescript
function list<T>(
length: number,
value: T
): T[]
參數
length
(number): 要創建的數組長度value
(T): 用於填充數組的值
返回值
返回一個指定長度的數組,所有元素都等於指定的值。
示例
創建數字數組
typescript
import { list } from 'radash'
// 創建5個1
const ones = list(5, 1)
// [1, 1, 1, 1, 1]
// 創建10個0
const zeros = list(10, 0)
// [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
// 創建3個-1
const negatives = list(3, -1)
// [-1, -1, -1]
創建字符串數組
typescript
import { list } from 'radash'
// 創建4個空字符串
const emptyStrings = list(4, '')
// ['', '', '', '']
// 創建3個'placeholder'
const placeholders = list(3, 'placeholder')
// ['placeholder', 'placeholder', 'placeholder']
// 創建2個'*'
const stars = list(2, '*')
// ['*', '*']
創建對象數組
typescript
import { list } from 'radash'
// 創建3個空對象
const emptyObjects = list(3, {})
// [{}, {}, {}]
// 創建2個默認用戶對象
const defaultUser = { id: 0, name: '', age: 0 }
const users = list(2, defaultUser)
// [
// { id: 0, name: '', age: 0 },
// { id: 0, name: '', age: 0 }
// ]
創建布爾數組
typescript
import { list } from 'radash'
// 創建5個true
const trues = list(5, true)
// [true, true, true, true, true]
// 創建3個false
const falses = list(3, false)
// [false, false, false]
創建數組數組
typescript
import { list } from 'radash'
// 創建3個空數組
const emptyArrays = list(3, [])
// [[], [], []]
// 創建2個默認數組
const defaultArray = [1, 2, 3]
const arrays = list(2, defaultArray)
// [[1, 2, 3], [1, 2, 3]]
創建null或undefined數組
typescript
import { list } from 'radash'
// 創建4個null
const nulls = list(4, null)
// [null, null, null, null]
// 創建3個undefined
const undefineds = list(3, undefined)
// [undefined, undefined, undefined]
與map結合使用
typescript
import { list } from 'radash'
// 創建索引數組
const indices = list(5, 0).map((_, index) => index)
// [0, 1, 2, 3, 4]
// 創建偶數數組
const evens = list(5, 0).map((_, index) => index * 2)
// [0, 2, 4, 6, 8]
// 創建字母數組
const letters = list(26, '').map((_, index) => String.fromCharCode(97 + index))
// ['a', 'b', 'c', ..., 'z']
注意事項
- 淺拷貝: 如果傳入對象或數組,所有元素都會引用同一個對象
- 長度限制: 長度必須是非負整數
- 性能: 時間復雜度為 O(n),其中 n 是數組長度
- 內存: 會創建指定長度的數組,注意內存使用
與其他方法的區別
Array(n).fill(value)
: 原生方法,功能相同list()
: radash提供的更簡潔的APIArray.from({length: n}, () => value)
: 更靈活但更復雜
實際應用場景
- 初始化數組: 創建固定長度的數組用於後續操作
- 佔位符: 為表單、列表等創建佔位符元素
- 測試數據: 創建測試用的重復數據
- 緩沖區: 創建固定大小的緩沖區
- 矩陣初始化: 初始化二維數組的行或列