You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从数组中移除指定索引范围内的元素?

实现移除数组指定范围元素的函数

你要实现的removeVals函数逻辑非常明确:传入原数组、移除范围的起始索引、移除范围的结束索引(索引从0开始,范围包含首尾边界),返回移除对应元素后的新数组。参考示例的入参和返回值:

入参:removeVals([20, 30, 40, 50, 60, 70], 2, 4)
返回值:[20, 30, 70]
逻辑说明:移除索引2、3、4对应的三个元素40、50、60,剩余元素按原顺序拼接。

推荐实现(不修改原数组,无副作用)

直接用数组slice方法做分段拼接,不会改动传入的原始数组,适合绝大多数业务场景:

function removeVals(arr, start, end) {
  // 非法索引兜底,避免运行报错
  if (start < 0 || end >= arr.length || start > end) {
    return [...arr]
  }
  // 拼接「起始索引前的片段」和「结束索引后一位开始的片段」
  return [
    ...arr.slice(0, start),
    ...arr.slice(end + 1)
  ]
}

直接调用测试就能得到你要的结果:

const res = removeVals([20, 30, 40, 50, 60, 70], 2, 4)
console.log(res) // 输出 [20, 30, 70]

可选实现(允许修改原数组)

如果你不需要保留原始数组,可以用splice方法直接在原数组上做删除,性能会略好一点:

function removeVals(arr, start, end) {
  if (start < 0 || end >= arr.length || start > end) {
    return arr
  }
  // splice第二个参数是要删除的元素个数,计算方式为 结束索引-起始索引+1
  arr.splice(start, end - start + 1)
  return arr
}

注意:这个写法会直接修改你传入的原数组,使用前要确认不会影响其他依赖原数组的逻辑。

内容的提问来源于stack exchange,提问作者dada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 03:27:31