2

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

标签是对象数组:

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

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

  [{…}]

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

所以没有办法访问它,除了

console.log(Object(fullTag[0]).tag);

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

4

1 回答 1

1

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

所以,在你filter一个之后,即使只有一个通过函数array,你也会得到另一个。这就是为什么您无法使用.arrayitemtestfullTag.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这种方式访问​​您的财产wished

console.log(fullTag.tag);
于 2017-07-27T19:57:41.073 回答