JavaScript中如何在for..of循环+if条件中使用数组的下一个元素
解决方法
你可以通过Array.prototype.entries()方法在for..of循环中同时获取当前元素的索引和值,这样就能轻松拿到下一个索引对应的元素,同时要注意判断下一个索引是否超出数组范围,避免报错:
let textContainer = ['bird', 'dog', 'cat', 'snake', 'rabbit', 'ox', 'sheep', 'tiger']; for (let [index, word] of textContainer.entries()) { // 先判断下一个索引是否存在,再检查当前元素是dog且下一个是cat if (word === 'dog' && index + 1 < textContainer.length && textContainer[index + 1] === 'cat') { return true; } }
补充说明
entries()会返回一个迭代器,每次迭代返回的是[索引, 元素值]的数组,用解构赋值[index, word]就能直接拿到两者。- 必须加上
index + 1 < textContainer.length的判断,防止当当前元素是数组最后一个时,index+1超出数组长度导致读取undefined。 - 如果你的需求严格是索引1为dog且索引2为cat,那其实可以直接判断
textContainer[1] === 'dog' && textContainer[2] === 'cat',不需要循环,这样更高效。
内容的提问来源于stack exchange,提问作者Deviruchi D Devourer
相关产品推荐
相关产品推荐

