javascript - 如果条件必须只满足一次,如何停止数组方法?
问题描述
我已经给出了一个简单的任务来遍历一个数组arr
并从第一个元素(0 索引)开始删除每个元素,直到当迭代元素通过它时函数func
返回。true
然后“一旦”满足条件,则返回数组的其余部分,否则,arr
应作为空数组返回。所以dropElements([0, 1, 0, 1]
应该返回[1, 0, 1]
。
为了回答我的问题,我使用数组过滤方法,但下面的代码将返回[1, 1]
. 是否可以在此问题中停止数组方法?一旦条件返回 true,我应该在代码中添加什么来停止它?
function dropElements(arr, func) {
return arr.filter(func);
}
dropElements([0, 1, 0, 1], function(n) {return n === 1;});
解决方案
相反,我会使用findIndex
来查找与条件匹配的索引,然后.slice
只取它之后的内容:
function dropElements(arr, func) {
const index = arr.findIndex(func);
return index === -1 ? [] : arr.slice(index);
}
console.log(dropElements([0, 1, 0, 1], n => n === 1));
推荐阅读
- angular - 角子域
- ionic-framework - 学习离子框架需要多少时间?
- python - 查找具有相同元素的 elemtnt*s* 返回数组
- vb.net - 添加图像以设置属性而不将其保存在 VB.net 中
- java - 如何使用apache.cxf java从响应信封中提取soap标头
- parallel-processing - 并行化时三个嵌套的 do 循环不会给出与串行代码相同的结果
- oracle - 复选框值在 Oracle Forms 中不起作用
- elasticsearch - Logstash 配置始终运行 sql 模式
- excel - 带有“查找”功能的循环
- javascript - 未从范围获取值,出现错误:无法设置未定义的属性“值”