Javascript。为什么这个条件 s[i+1] 不给出错误 "out of range"?

标签 javascript conditional-statements ternary

var romanToInt = function(s) {
  value = 0;
  for (let i = 0; i < s.length; i += 1) {
    symbols[s[i]] < symbols[s[i + 1]] ? value -= symbols[s[i]] : value += symbols[s[i]]
  }
  return value
};

这是一个 leetcode 例子,我对这个条件很困惑 symbols[s[i]] < symbols[s[i+1]] ? ,我不明白为什么 s[i+1] 不会超出范围?还是超出范围但被认为是错误的?

最佳答案

在 javascript 中,数组是对象,因此在 javascript 数组中不存在超出范围的情况。数组索引存储为键。如果数组中不存在索引,则返回 undefined

const arr = [1, 2, 3];
console.log(typeof arr);    // output: "object"
console.log(arr[4]);        // output: undefined

关于Javascript。为什么这个条件 s[i+1] 不给出错误 "out of range"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62574010/

相关文章:

html - 跨多个网站有条件地注释 html 脚本语句

javascript - 如何重置输入值

javascript - 调用 iframe 中定义的 Javascript 函数

loops - Kotlin:当条件为真时重复n次

javascript - Angular2 阻止在指令中按下回车键时提交表单

conditional - 在 Dart 中的条件中进行变量赋值时如何缩短代码?

java - 在java中,在lambda函数内部使用时,三元运算符是否被视为单行表达式?

javascript - JavaScript 三元运算符可以支持 3 个条件吗?

javascript - 未捕获的语法错误 "await import(...)"

javascript - 浏览器性能以及使用 Bodymovin 和 CSS 动画的问题