javascript - CodeMirror - 在使用 for...in 遍历数组时使用 replaceRange 时“无法读取未定义的属性 'chunkSize'”
问题描述
(我意识到使用 for...in 遍历具有数字索引的数组是不好的做法(在此处解释),但我不明白这与这里有什么关系。我想了解为什么会发生下面描述的问题。我缺乏阅读 CodeMirror 源代码以找出问题所在的经验和技能。)
示例应用JSFiddle
这里生成了一个“二维数组”(array[]),3 行,每行包含 4 个元素(3 个数字和一个 \n 字符)。我的目标是遍历整个“二维数组”并将每个字符放入 CodeMirror 编辑器中。
- 如果单击“for...in”按钮,代码将执行数组的前两行,然后丢弃以下错误:
Uncaught TypeError: Cannot read property 'chunkSize' of undefined
- 如果您单击“for...in that works”按钮,您将获得正确的结果且没有错误。此函数与前一个函数的唯一区别是 replaceRange 方法的“line”参数有一个 +1。由于某种原因,这种方式可以完美运行
- 如果您单击“forEach”按钮,一切都会正常
我发现“行”变量是反复试验的问题。所以我的问题是:
- 为什么使用“for...in”按钮会出现上述错误?
- 为什么我没有使用“for...in that works”按钮收到错误消息?
解决方案
推荐阅读
- c++ - 在没有默认构造函数的情况下实例化头文件中声明的变量
- python - 为什么 lxml 会切出一段 XML 文件?
- google-play - 不同的 orders.refund 和 purchase.subscriptions.refund 用于 GooglePlay IAP 上的订阅退款
- pine-script - Pinescript(Tradingview)每次都停止并限制不工作
- android - 如何在小部件中强制使用夜间/白天资源?
- python-3.x - 如果后代进程也使用多处理,Python如何防止多处理僵尸
- python-3.x - WritePrinter 失败并显示“需要一个类似字节的对象,而不是打印时的‘str’”
- typescript - TypeScript Compiler API:获取类型结构
- java - Android 不喜欢 Firestore 中的 .add
- openshift - 类似 [lab-user@studentvm 0 ~]$ oc get pods 错误:缺少或不完整的配置信息