在 json 中查找元素 - 使用下划线库或其他方式

Find the element in json - Using underscore library or other way

我想在下面给定的对象数组中找到 g:id 对象

如果我的g:id"g:id": "121"

我可以找到像

这样的元素
var item = _.findWhere(obj, {'g:id': '121'});

但我拥有的是 "g:id": ["121"] 就像一个数组。我怎样才能找到它。

这是我的对象数组。

[
  {
    "g:id": [
      "121"
    ],
    "g:item_group_id": [
      "90461"
    ]
  },
  {
    "g:id": [
      "129"
    ],
    "g:item_group_id": [
      "90462"
    ]
  }
]

我试过这样 var item = _.findWhere(jsonXML, {'g:id'.[0]: '121'}); 但它无效。

我如何通过 underscore.js 或任何其他方式做到这一点?

您可以使用 Array.find() 和解构从数组中获取 g:id 值:

const arr = [{"g:id":["121"],"g:item_group_id":["90461"]},{"g:id":["129"],"g:item_group_id":["90462"]}]

const result = arr.find(({ 'g:id': [gid] }) => gid === '121')

console.log(result)

另一种选择是使用 Array.includes() 查看数组是否包含值(如果数组可能包含多个值,则必须这样做):

const arr = [{"g:id":["121"],"g:item_group_id":["90461"]},{"g:id":["129"],"g:item_group_id":["90462"]}]

const result = arr.find(({ 'g:id': gid }) => gid.includes('121'))

console.log(result)