JavaScript如何按指定索引范围筛选数组并移除区间外元素
数组指定索引范围元素筛选方案
你可以用以下几种JS原生方法实现需求,三种方案各有适用场景:
方案1:使用slice()(最推荐)
slice()是JS数组内置的截取方法,支持传入起始索引(包含)和结束索引(不包含),返回新数组,不会修改原数组,是这类场景的最优选择。
示例代码:
const savings = ["+10$", "-22.50$", "+5$", "+22.40$", "-3.5$"]; // 截取索引1到3(包含两端),第二个参数需传入结束索引+1也就是4 const result = savings.slice(1, 4); console.log(result); // 输出:["-22.50$", "+5$", "+22.40$"]
方案2:使用filter()(灵活性最高)
如果后续需要叠加元素值的判断规则,可以用filter()方法,遍历数组时判断索引是否在目标范围内即可,同样不会修改原数组。
示例代码:
const savings = ["+10$", "-22.50$", "+5$", "+22.40$", "-3.5$"]; const minIndex = 1; const maxIndex = 3; const result = savings.filter((_, index) => index >= minIndex && index <= maxIndex); console.log(result); // 输出:["-22.50$", "+5$", "+22.40$"]
方案3:使用splice()(修改原数组)
如果需要直接在原数组上移除范围外的元素,可以用splice(),注意该方法会改动原数组,仅在确定需要修改原数据时使用。
示例代码:
const savings = ["+10$", "-22.50$", "+5$", "+22.40$", "-3.5$"]; // 先删除索引4及之后的所有元素 savings.splice(4); // 再删除索引0位置的1个元素 savings.splice(0, 1); console.log(savings); // 输出:["-22.50$", "+5$", "+22.40$"]
内容的提问来源于stack exchange,提问作者Italik
相关产品推荐
相关产品推荐

