You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何在for of循环内正确使用indexOf获取元素索引

错误原因

Array.indexOf() 始终返回目标元素在数组中第一次出现的位置索引,你遍历到第二个X元素时,调用array.indexOf('X')仍然会返回第一个X的位置3,所以最终输出结果为[3, 3]。

修复方案

如果要在for/of循环中同时拿到元素和对应的索引,可以调用数组的entries()方法,它会返回一个迭代器,每次迭代产出[索引, 元素值]格式的数组,直接解构取值即可:

var s = '_'
var x = 'X'
var O = 'O'
var spaceArr = [s, s, s, x, s, s, s, s, x]

function spaceChecker(array) {
  let currGame = []
  for (const [index, element] of array.entries()) {
    if (element === 'X') {
      currGame.push(index)
    }
  }
  return currGame
}
console.log(spaceChecker(spaceArr)) // 输出结果:[3, 8]

内容的提问来源于stack exchange,提问作者Max Waters

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:45:01