【发布时间】:2020-10-28 03:44:52
【问题描述】:
我有一个对象列表,其中包含表单的每个对象:
{
"myFilters": [
{
"isMatch": false,
"filters": [
{
"id": "aaaaaa",
"version": "v1"
},
{
"id": "kk",
"version": "v1"
}
]
}
],
"randomAttr1": null,
"randomAttr2": []
}
假设以上是存储在result中的对象列表中的一个对象。
现在我想获取所有 版本 的列表并将其作为新元素 relevant_versions 的值添加回此对象,但条件是 Id 和版本必须在网址参数。这是我的尝试:
for (let f of result) {
f.relevant_versions = f.myFilters.filter(x=>x.filters
.filter(item=>(item.id == this.$route.params.filterId && item.version == this.$route.params.version))
.map(fid => fid.version))
}
但我有整个 myFilters 元素,而不是只有版本。我想我很接近并在这里犯了一个简单的错误。
如何在此处适当地填充相关版本?
编辑:所以输出看起来像
{
"myFilters": [
{
"isMatch": false,
"filters": [
{
"id": "aaaaaa",
"version": "v1"
},
{
"id": "kk",
"version": "v1"
}
]
}
],
"randomAttr1": null,
"randomAttr2": [],
"relevant_versions":["v1", "v1"]
}
示例路由是localhost:8080/filters/kk/v1。这里kk对应this.$route.params.filterId,v1对应this.$route.params.version。
【问题讨论】:
-
你能举一些你想要的结果的例子吗?还包括会产生这些结果的路由参数
-
@Phil 我已经进行了编辑。
-
为什么会有两个
v1条目?只有一个 filter 匹配filterId?
标签: javascript vue.js dictionary object