Skip to content

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']

注意事項

  1. 淺拷貝: 如果傳入對象或數組,所有元素都會引用同一個對象
  2. 長度限制: 長度必須是非負整數
  3. 性能: 時間復雜度為 O(n),其中 n 是數組長度
  4. 內存: 會創建指定長度的數組,注意內存使用

與其他方法的區別

  • Array(n).fill(value): 原生方法,功能相同
  • list(): radash提供的更簡潔的API
  • Array.from({length: n}, () => value): 更靈活但更復雜

實際應用場景

  1. 初始化數組: 創建固定長度的數組用於後續操作
  2. 佔位符: 為表單、列表等創建佔位符元素
  3. 測試數據: 創建測試用的重復數據
  4. 緩沖區: 創建固定大小的緩沖區
  5. 矩陣初始化: 初始化二維數組的行或列

Released under the MIT License.