首页 > 建站教程 > JS、jQ、TS >  js for in的索引值是字符串导致的问题正文

js for in的索引值是字符串导致的问题

我爱模板网写了下面一段代码:

for(let i in arr) {
    if(arr[i].id === id && arr[i+1]) {
        idx = i+1
        flag = true
        break
    }
}


发现if怎么都进不去,但是打印了i、arr、id等等,是没问题的,按道理是可以进去的,但是 arr[i+1] 始终是undefined,于是乎,打印了下 i+1,发现是下面的结果:

01

11

21

31

...


原来,这个i并不是数字类型的索引,而是字符串类型的索引,查看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in,里面有描述。知道了问题所在,解决起来就简单了。还是自己的基础太差,浪费时间。