0
var collection = {
  'key1': [
    { 'uuid': '123', 'a': 'a' },
    { 'uuid': '456', 'b': 'b',
      'randomKeyValue': [
        { 'uuid': '349', 'd': 'd' }
      ]
    }
  ],
  'key2': [
    { 'uuid': '890', 'c': 'c' }
  ]
}

使用_.find(collection, { 'uuid': '349' })将返回未定义。

如何找到具有的哈希uuid == 349

查找的预期回报是:{ 'uuid': '349', 'd': 'd' }

必须使用 ES5 标准编写,并且必须使用 Lodash。

4

2 回答 2

3

使用纯js相当简单

var collection = {
    'key1': [
        { 'uuid': '123', 'a': 'a' },
        { 'uuid': '456', 'b': 'b' }
    ],
    'key2': [
        { 'uuid': '890', 'c': 'c' },
        { 'uuid': '349', 'd': 'd' }
    ]
}

const res = Object.values(collection).flat().find(({uuid}) => uuid === '349');
console.log(res);

于 2019-08-27T07:51:58.453 回答
1
_.filter(_.flatMap(collection), function(o) { return o.uuid == '349' });
于 2019-08-27T07:59:02.253 回答