无法访问数组中的单个对象?
Posted
技术标签:
【中文标题】无法访问数组中的单个对象?【英文标题】: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 访问它 - 除非你的代码昨天不同,不。 【参考方案1】:filter()
方法创建一个新数组,其中包含所有通过提供的 回调 函数实现的测试的元素。
所以,在你filter
和array
之后,即使只有一个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 在你的数组中是唯一的。所以,你可以像我的回答一样使用它。以上是关于无法访问数组中的单个对象?的主要内容,如果未能解决你的问题,请参考以下文章