当我执行以下的console.log时:
console.log(this.categories);
我得到了这个结构:
是从这个来自api的json创建的:
[
{
"id":"dff0bb3e-889f-43e6-b955-52cc7203952f",
"name":"Wood",
"category_types":[
{
"id":"49b31f43-d98d-43c8-9798-088ec6914fe5",
"name":"Solid"
},
{
"id":"8592716a-ffd5-4e97-ba9e-6a64ba6e48f1",
"name":"Engineered"
}
]
},
{
"id":"6b2b6914-6c64-4389-a327-be3f08fd066d",
"name":"Carpet",
"category_types":[
{
"id":"0e2c8473-90fb-4806-a6e7-2389eeb0f9e4",
"name":"Loop pile"
},
{
"id":"3c762653-4f0d-42d2-a84e-133c7051c95b",
"name":"Cut pile"
},
{
"id":"0997d4dc-e886-46ef-83b4-d90c4fb72553",
"name":"Cut \u0026 loop pile"
}
]
}
]
鉴于我有价值' Wood'在名为value
的字符串变量中,如何获取Wood对象的category_types数组?
console.log(this.categories[value]);
返回undefined。
答案 0 :(得分:4)
您想要找到名称为' Wood'的对象,然后获取category_types
。 Array.prototype.find
返回满足所提供测试函数中条件的第一个值。在您的情况下,它可能如下所示:
this.categories.find(value => value.name === 'Wood').category_types
答案 1 :(得分:1)
您可以使用Array.filter
:
let wood = this.categories.filter(category => {
return category.name === "Wood";
})[0];
这将过滤您的类别以检索名称为wood的类别,然后您选择第一个类别。如果您在数组中找不到name === "Wood"
的任何内容,那么它将为undefined
。