无法访问数组中的单个对象?
2017-07-27
828
嗨,我在访问数组中的对象时遇到了问题......我不知道是因为我更新了 Chrome,还是因为我添加了 Preact,然后从我的 React 应用程序中删除了它。问题是这样的:
标签是对象数组:
var fullTag = tags.filter(tag => tag.tagId==tagId);
console.log(fullTag);
结果我在控制台中得到了这个:
[{…}]
当我展开它时,我得到了这个:(图像)
所以除了使用
console.log(Object(fullTag[0]).tag);
在所有其他情况下我都得到了未定义的......为什么会这样?!我可以发誓直到昨天我还可以使用 fullTag.tag 访问它...有人可以解释一下吗?
1个回答
filter()
方法会创建一个新数组,其中包含通过所提供的
callback
函数实现的测试的所有元素。
因此,在
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);
现在,您可以按照
希望
的方式访问您的
tag
属性。
console.log(fullTag.tag);
Mihai Alexandru-Ionut
2017-07-27