使用 Vue 过滤以检索嵌套对象中的特定值
Posted
技术标签:
【中文标题】使用 Vue 过滤以检索嵌套对象中的特定值【英文标题】:Filter to retrieve specific value in nested object using Vue 【发布时间】:2021-11-02 16:34:37 【问题描述】:我有一个嵌套的 json 对象:
"51":
"wheels": 10,
"id": 1,
"name": "truck"
,
"55":
"wheels": 4,
"id": 33,
"name": "Car"
,
"88":
"wheels": 2,
"id": 90,
"name": "Bike"
我想按 ID 过滤,但只返回***,即。
过滤器 ID = 33,这将返回 4。
我曾尝试使用 .filter 函数,但出现错误:filter is not a function
我认为这是因为这不是数组。我试图在这里使用答案进行复制:
How to filter deeply nested json by multiple attributes with vue/javascript
没有成功,因为 json 有一个键 (51, 55, 88) 所以我很难过。
提前感谢您的帮助。
【问题讨论】:
【参考方案1】:您可以使用Object.values
将对象转换为数组,然后对其使用find
方法来检索特定对象。比如:
Object.values(obj).find(val => val.id === 33)?.wheels
let obj =
"51":
"wheels": 10,
"id": 1,
"name": "truck"
,
"55":
"wheels": 4,
"id": 33,
"name": "Car"
,
"88":
"wheels": 2,
"id": 90,
"name": "Bike"
console.log(Object.values(obj).find(val => val.id === 33)?.wheels)
【讨论】:
以上是关于使用 Vue 过滤以检索嵌套对象中的特定值的主要内容,如果未能解决你的问题,请参考以下文章
如何从 KeyValue 管道中过滤特定值以显示在 html 表中的特定标题下 |角 6 +
如何使用映射或过滤器而不是列表推导过滤特定值的嵌套字典(pythonic 方式)?
HiveQL:如何编写查询以根据嵌套的 JSON 数组值选择和过滤记录