按要求改写JavaScript的forEach循环为更高效实现(附示例)
代码改写方案
原forEach实现代码
var isExist = false; var cashoutIndex = 0; CashOutData.forEach((item, index) => { if (item.id === userBets[0][i].id) { isExist = true; cashoutIndex = index; } });
改写后的高效实现
利用数组的findIndex方法,它会在找到第一个匹配项后立即终止遍历,相比forEach遍历全部元素的方式性能更优,同时能直接获取目标索引,进而判断是否存在匹配项:
// 获取匹配id的元素索引,找不到则返回-1 const cashoutIndex = CashOutData.findIndex(item => item.id === userBets[0][i].id); // 根据索引判断是否存在匹配项 const isExist = cashoutIndex !== -1;
改写说明
findIndex方法遍历数组时,一旦找到符合条件的元素就停止遍历,避免不必要的循环,提升性能- 代码结构更简洁,直接通过返回值同时得到索引和存在状态,减少冗余变量的初始化操作
内容的提问来源于stack exchange,提问作者code coder
相关产品推荐
相关产品推荐

