Skip to content

@utilslib/core/omitRange


从数组中排除指定的索引或索引范围,返回一个新的数组。


omitRange

函数签名

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

描述

从数组中排除指定的索引或索引范围,返回一个新的数组。

类型参数

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

参数

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

返回值

T\[\]

示例

typescript
omitRange([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [2, 4]) // [1, 2, 6, 7, 8, 9, 10]
typescript
omitRange([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2) // [1, 2, 4, 5, 6, 7, 8, 9, 10]
typescript
omitRange(['a', 'b', 'c', 'd', 'e'], [1, 3]) // ['a', 'e']
点击查看源码
js
/**
 * 从数组中排除指定的索引或索引范围,返回一个新的数组。
 *
 * @type {<T>(arr: T[], range: number | [number, number]) => T[]}
 * @param {T[]} arr - 要处理的数组。
 * @param {number | [number, number]} range - 要排除的单个索引或索引范围数组。
 * @returns {T[]} 排除指定索引或索引范围内元素后的新数组。
 * @template T - 数组元素类型。
 * @example
 * omitRange([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [2, 4]) // [1, 2, 6, 7, 8, 9, 10]
 * @example
 * omitRange([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2) // [1, 2, 4, 5, 6, 7, 8, 9, 10]
 * @example
 * omitRange(['a', 'b', 'c', 'd', 'e'], [1, 3]) // ['a', 'e']
 */
export function omitRange(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
 * omitRange([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [2, 4]) // [1, 2, 6, 7, 8, 9, 10]
 * @example
 * omitRange([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 2) // [1, 2, 4, 5, 6, 7, 8, 9, 10]
 * @example
 * omitRange(['a', 'b', 'c', 'd', 'e'], [1, 3]) // ['a', 'e']
 */
export function omitRange<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 :::