首页 > 解决方案 > 使用 lodash 查找嵌套对象

问题描述

我想获取具有特定 id 的对象的父对象。在这种情况下,我知道 groupId 并想要获取父对象:

const myObject = [
  {
    "myItems": [
      {
        "id": 1,
        "group": {
          "groupId": 33,
        },
      },
      {
        "id": 2,
        "group": {
          "groupId": 44,
        },
      },
    ]
  }
]

这不起作用:

const parentObject= filter(myObject, {[myItems: {groupId: 44}]})

标签: lodash

解决方案


用于_.some()检查属性groupId内部是否有物品myItems。如果_.some()返回true,则该项目将包含在结果中。

const myArray = [{"myItems":[{"id":1,"group":{"groupId":33}},{"id":2,"group":{"groupId":44}}]},{"myItems":[{"id":1,"group":{"groupId":55}}]}]

const result = _.filter(myArray, o => 
  _.some(o.myItems, ['group.groupId', 44])
)

console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>


推荐阅读