无法访问数组中的单个对象?

时间:2017-07-27 19:51:38

标签: javascript arrays reactjs javascript-objects preact

enter image description here您好我在访问数组中的Object时遇到问题...我不知道是因为我更新了Chrome还是因为我添加了,并且从我的React应用程序中删除了Preact。问题是:

标签是对象数组:

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

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

  [{…}]

当我扩展它时,我得到:(图像)

除了

之外,没有办法访问它
console.log(Object(fullTag[0]).tag);

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

1 个答案:

答案 0 :(得分:1)

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

因此,在您filter array之后,即使只有一个array传递item函数,您也会获得另一个test。这就是您无法使用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的方式访问wished媒体资源。

console.log(fullTag.tag);