javascript - 为什么javascript将变量视为字符串?

标签 javascript ecmascript-6

在下面的代码中为什么将 i 视为字符串?我必须将其乘以 1 才能将其转换回数字。

  getPositionInArray(value, array) {
    console.log('array = ', array);

    let i = 0; // why is i a string?
    for (i in array) {
      if (array[i].toLowerCase() === value) {
        let positionOnUI = i * 1 + 1; // why can't I use i + 1?
        return positionOnUI;
      }
    }
    return null;
  }

最佳答案

只要使用普通的 for 循环就不会出现此问题:

Working Example

function getPositionInArray (value, array) {
  console.log('array = ', array);
  for (let i = 0; i < array.length; i++) {
    if (array[i].toLowerCase() === value) {
      let positionOnUI = i // why can't I use i + 1?
      return positionOnUI;
    }
  }
  return null;
}

关于javascript - 为什么javascript将变量视为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37285250/

相关文章:

javascript - 使用 JavaScript 跳过 YouTube 播放列表中的视频

javascript - 为什么函数原型(prototype)被重复链接?

javascript - 将字符串树转换为数组

module - ES6 导出对象的所有值

javascript - 将异步/等待 block 中的部分代码提取到单独的函数中

javascript - for...of 对数组中的对象进行迭代和解构

javascript - Node.js:遇到 mocha 问题并期望 to.throwError

javascript - 如何在 Google Chrome 中启动 JavaScript 调试器?

javascript - 如何使用军事时间值创建时间选择器?

javascript - react-native:导入后找不到变量样式表