【问题标题】:Cant access single object in array?无法访问数组中的单个对象?
【发布时间】:2018-01-03 17:14:49
【问题描述】:

嗨,我在访问数组中的对象时遇到问题...我不知道是因为我更新了 Chrome 还是因为我添加了,然后从我的 React 应用程序中删除了 Preact。问题是这样的:

标签是对象数组:

var fullTag = tags.filter(tag => tag.tagId==tagId);
console.log(fullTag);

结果我在控制台中得到了这个:

  [{…}]

当我展开它时,我得到这个:(图片)

所以除了

之外没有其他方法可以访问它
console.log(Object(fullTag[0]).tag);

在所有其他方面我都不确定......这是为什么?!我可以发誓直到昨天我都可以使用 fullTag.tag 访问它...有人可以解释一下吗?

【问题讨论】:

  • 您的图片显示它是一个数组,这就是您无法访问其成员的原因。
  • 我可以发誓直到昨天我都可以使用 fullTag.tag 访问它 - 除非你的代码昨天不同,不。

标签: javascript arrays reactjs javascript-objects preact


【解决方案1】:

filter() 方法创建一个新数组,其中包含所有通过提供的 回调 函数实现的测试的元素。

所以,在你filterarray 之后,即使只有一个item 通过test 函数,你也会得到另一个array。这就是您无法使用fullTag.tag 访问它的原因。

解决方案是使用其index 访问一个元素。

let tags=[{"id":1,"tag":"tag1"},{"id":2,"tag":"tag2"}];
let tagId=1;
var fullTag = tags.filter(tag => tag.id==tagId);
console.log(fullTag);
console.log(Object(fullTag[0]).tag);

如果tagId 属性在您的数组中是唯一的,您可以使用find 方法。

var fullTag = tags.find(tag => tag.id==tagId);

现在您可以像 wished 那样访问您的 tag 属性。

console.log(fullTag.tag);

【讨论】:

  • @Ivan,也许你使用了find 方法。
  • 我想 tagId 在你的数组中是唯一的。所以,你可以像我的回答一样使用它。
猜你喜欢
  • 2018-02-07
  • 2020-12-08
  • 2017-08-13
  • 2019-06-13
  • 2020-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多