【问题标题】:Access index property in javascript using a variable使用变量访问javascript中的索引属性
【发布时间】:2023-03-10 21:56:01
【问题描述】:

我正在使用的 api 的每个请求限制为 100 个项目。所以我试图找出长度变量(有效),但为什么我不能使用该变量来获取索引。如下所示。

var ttl = results.data.length;
const s = results.data[ttl].id;

控制台读取

TypeError: Cannot read property 'id' of undefined

ttl 不起作用。但是,如果我执行以下操作...

const s = results.data[100].id;

该值可以很好地识别...但我不知道长度是多少,所以我需要将它设置在一个 var 中并尝试使用长度 var 导航对象?

【问题讨论】:

  • ttl = parseInt(l); 无法工作,因为您将 ttl 声明为 const
  • 如果数组的长度为 2,则它包含元素 0 和 1(但不包含 2),因此 array[array.length] 将始终未定义。
  • 我知道索引是如何工作的,我只想动态访问它...我尝试将 const 更改为 var 而没有 luch
  • 另外,如果results.data 是一个数组,那么results.data.length 已经是一个数字。无需致电parseInt
  • “我知道索引是如何工作的” 显然不是。如果data.length2,那么只有data[0]data[1] 存在。访问data[2](你在做什么)将返回undefined。而undefined.id 会抛出错误。

标签: javascript jquery node.js api


【解决方案1】:

你不能重写一个常量。 ttl = parseInt(l); 是什么意思?你想做什么? (代码参考原题)

const ttl = results.data.length;
ttl = parseInt(l); // <- It's wrong
const s = results.data[ttl].id;

要获得最后一个值,你只需要这个:

const s = results.data[results.data.length-1].id;

【讨论】:

  • results.data.length-1 成功了!...我会在 6 分钟内标记它
  • 问题与ttl 是一个常量无关
  • @jonathanGB:这是原始问题中的一个问题。但我猜这不是 OP 的实际代码,否则他们会得到不同的错误。
猜你喜欢
  • 1970-01-01
  • 2019-10-18
  • 2021-12-31
  • 1970-01-01
  • 2011-12-10
  • 1970-01-01
  • 2012-11-28
  • 2014-08-04
  • 2017-06-09
相关资源
最近更新 更多