You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何从指定下标遍历对象数组修改属性及修复引用错误

报错原因

  • 循环边界超出合法范围:数组的合法下标为0到library.length - 1,原有代码中i <= library.length的判断会导致最后一次循环时i等于数组长度,此时library[i]为undefined,访问undefined.id就会抛出引用错误。
  • 无赋值逻辑:library[i].id - 1仅完成了减法运算,没有将结果回写到id属性,无法实现属性更新。

修复后的实现代码

如果你的执行逻辑是先删除对应下标的元素,再调用updateId更新后续id,使用以下代码即可:

function updateId(index) {
  // 循环终止条件改为i < library.length,避免下标越界
  for (let i = index; i < library.length; i++) {
    // 减法结果赋值回id属性
    library[i].id -= 1;
  }
}

如果你的执行逻辑是先调用updateId再删除元素,需要把循环起始值改为i = index + 1,避免修改到待删除元素的id值。

内容的提问来源于stack exchange,提问作者as-0234

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:54:06