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 - Javascript。为什么此条件s [i + 1]没有给出 “out of range”错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62574010/

10-10 19:01