JavaScript如何优雅实现字符串数组截断到指定匹配元素位置
JavaScript 数组截断实现方案
基础实现(确认目标元素存在于数组中)
直接通过 Array.indexOf 匹配目标位置,配合 Array.slice 截取即可,一行代码完成:
const arr = [ '0', 'parentNode', 'children', '0', 'values' ] const result = arr.slice(0, arr.indexOf('children') + 1) // 输出结果:['0', 'parentNode', 'children']
说明:
slice遵循左闭右开规则,所以结束下标要取目标索引+1才能包含目标元素本身,该方法不会修改原数组,会返回新的截断后数组。
如果需要直接修改原数组,可以用 Array.splice 实现:
arr.splice(arr.indexOf('children') + 1) // 原数组已被修改为 ['0', 'parentNode', 'children']
兼容目标元素不存在的场景
如果不能确定数组中一定包含目标元素,为了避免找不到元素时返回空数组,可以增加一层判断,找不到时返回完整原数组:
const target = 'children' const result = arr.slice(0, arr.indexOf(target) !== -1 ? arr.indexOf(target) + 1 : arr.length)
内容的提问来源于stack exchange,提问作者employee
相关产品推荐
相关产品推荐

