javascript - Javascript。为什么这个条件 s[i+1] 不会给出“超出范围”的错误?
问题描述
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
推荐阅读
- google-apps-script - 无法获取活动用户的电子邮件
- flutter - 如何在 Flutter 中实现应用内购买订阅?
- http - 仅请求正文的 http/1.1 兼容方式
- php - MySQL 服务无法自动启动
- php - 具有相同第二部分的 CSS 选择器
- icu - 如何在 webassembly 中构建和使用 libicu
- c++ - 总和为 x 且长度为 k 的所有非递减序列的总和
- html - 如何使用thymeleaf和系统本地文件夹中的spring boot设置图像路径
- ajax - (Symfony4 中的 Javascript) - 路径功能不起作用
- python - 为什么在Python中使用Button函数时文本参数响应循环而命令参数不响应