【问题标题】:Filter to retrieve specific value in nested object using Vue使用 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) 所以我很难过。

提前感谢您的帮助。

【问题讨论】:

    标签: json vue.js object filter


    【解决方案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)

    【讨论】:

      猜你喜欢
      • 2020-03-07
      • 1970-01-01
      • 2017-04-13
      • 2018-09-10
      • 2021-11-28
      • 1970-01-01
      • 2017-08-01
      • 1970-01-01
      • 2020-07-28
      相关资源
      最近更新 更多