如何在JavaScript的for of循环中直接嵌入if条件判断语句
解决方案
首先明确:JavaScript 原生的for...of语法不支持直接在循环声明中内嵌条件判断,你尝试的两种写法不符合ECMAScript语法规范,因此无法正常运行。
可行的替代方案有以下几种:
- 方案1:先使用
filter方法过滤符合条件的元素再遍历
这种写法最贴合你想要把条件前置的需求:
注意:for (let x of array.filter(item => item != array[0])) { // do stuff }filter会生成一个新的临时数组,超大规模数组场景下会有极小的性能开销,普通业务场景完全可以忽略。 - 方案2:如果你的实际需求是仅跳过第一个位置的元素(而不是跳过所有和第一个元素值相等的元素),可以直接截取数组后续部分遍历,性能更高:
for (let x of array.slice(1)) { // do stuff } - 方案3:保留原有写法
你最开始的写法本身就是合法、高效且可读性很强的实现,不会有额外性能损耗,如果没有特殊的代码风格要求,完全可以继续使用。
内容的提问来源于stack exchange,提问作者Longino
相关产品推荐
相关产品推荐

