JavaScript 如何提取数组中两个指定关键词之间的元素生成新数组
解决方案
你可以直接使用JavaScript内置的slice()数组方法实现需求,不需要写循环,也不会改动原数组。
slice()接收两个参数:第一个是提取的起始索引(包含对应元素),第二个是提取的结束索引(不包含对应元素),执行后会返回一个包含目标元素的新数组。
用法示例
- 提取普通数字数组的中间元素
const arr = [1, 2, 3, 4, 5]; // 要提取索引1、2、3对应的2、3、4,结束索引填4即可 const newArr = arr.slice(1, 4); // newArr的结果为 [2, 3, 4]
- 提取两个关键词中间的元素
你已经拿到两个关键词的索引的前提下,直接把起始索引设为第一个关键词的索引+1(跳过关键词本身),结束索引设为第二个关键词的索引即可:
const arr = ["cmd", "|arg", "stuff", "blah", "|end"]; const argIndex = arr.indexOf("|arg"); // 值为1 const endIndex = arr.indexOf("|end"); // 值为4 const newArr = arr.slice(argIndex + 1, endIndex); // newArr的结果为 ["stuff", "blah"]
注意事项
- 如果你需要提取的内容包含两个关键词本身,把参数改为
arr.slice(argIndex, endIndex + 1)即可 - 不要和
splice()混淆:splice()会直接修改原数组,适合删除/插入数组元素的场景,slice()不会改动原数组,专门用来提取子数组。
内容的提问来源于stack exchange,提问作者KillerCube
相关产品推荐
相关产品推荐

