Skip to content

@utilslib/core/pickRange


从数组中选取指定的索引或索引范围并返回新的数组。


pickRange

函数签名

typescript
function pickRange<T>(arr: T[], range: number | [number, number]): T[]

描述

从数组中选取指定的索引或索引范围并返回新的数组。

类型参数

参数名约束默认值描述
T--- 数组元素类型。

参数

参数名类型可选默认值描述
arrT\[\]--
rangenumber | \[number, number\]--

返回值

T\[\]

示例

typescript
pickRange([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [2, 4]) // [3, 4, 5]
typescript
pickRange([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2) // [3]
typescript
pickRange(['a', 'b', 'c', 'd', 'e'], [1, 3]) // ['b', 'c', 'd']
点击查看源码
js
/**
 * 从数组中选取指定的索引或索引范围并返回新的数组。
 *
 * @type {<T>(arr: T[], range: number | [number, number]) => T[]}
 * @param {T[]} arr - 要选取元素的数组。
 * @param {number | [number, number]} range - 要选取的单个索引或索引范围数组。
 * @returns {T[]} 选取指定索引或索引范围内元素后的新数组。
 * @template T - 数组元素类型。
 * @example
 * pickRange([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [2, 4]) // [3, 4, 5]
 * @example
 * pickRange([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2) // [3]
 * @example
 * pickRange(['a', 'b', 'c', 'd', 'e'], [1, 3]) // ['b', 'c', 'd']
 */
export function pickRange(arr, range) {
  const _range = typeof range === "number" ? [range, range] : range;
  const [start, end] = _range;
  return arr.filter((_, index) => index >= start && index <= end);
}
ts
/**
 * 从数组中选取指定的索引或索引范围并返回新的数组。
 *
 * @type {<T>(arr: T[], range: number | [number, number]) => T[]}
 * @param {T[]} arr - 要选取元素的数组。
 * @param {number | [number, number]} range - 要选取的单个索引或索引范围数组。
 * @returns {T[]} 选取指定索引或索引范围内元素后的新数组。
 * @template T - 数组元素类型。
 * @example
 * pickRange([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [2, 4]) // [3, 4, 5]
 * @example
 * pickRange([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2) // [3]
 * @example
 * pickRange(['a', 'b', 'c', 'd', 'e'], [1, 3]) // ['b', 'c', 'd']
 */
export function pickRange<T>(arr: T[], range: number | [number, number]): T[] {
  const _range = typeof range === "number" ? [range, range] : range;
  const [start, end] = _range;
  return arr.filter((_, index) => index >= start && index <= end);
}

如有错误,请提交issue :::