Javascript Lodash u2;过滤器如何在数组中查找同级

Javascript Lodash u2;过滤器如何在数组中查找同级,javascript,arrays,lodash,Javascript,Arrays,Lodash,我在识别数组内部和数组中定义的对象时没有任何运气 我有以下数据 var values = [ { "letter": "S", "clients": [ { "_id": "58f61681e32f1927a41c19bf", "firstName": "Shelly", "lastName": "R", } ] }, { "letter": "G", "clients": [ {

我在识别数组内部和数组中定义的对象时没有任何运气

我有以下数据

var values = 
[
  {
  "letter": "S",
  "clients": [
    {
      "_id": "58f61681e32f1927a41c19bf",
      "firstName": "Shelly",
      "lastName": "R",
    }
  ]
  },
  {
  "letter": "G",
  "clients": [
      {
        "_id": "58f2ab99319e35299b1ee4a9",
        "firstName": "Gary",
        "lastName": "R",
      }
    ]
  }
]
下面是lodash的电话

var identifier = '58f2ab99319e35299b1ee4a9';
var v =  _.filter(values, {clients: [{_id: identifier}]});
我读到的应该与嵌套数组一起使用。 我是不是遗漏了什么

我在角组件布线场景中使用了这个u.过滤器

虽然values.clients对象包含更多信息。我用实际输出代替了那把小提琴,它成功了。返回了一个实例。然而,下面的代码并没有

}).state('clients.client', {
        url: '/{clientId}',
        component: 'client',
            resolve: {
                    client : function(rolodex, $stateParams, _){
                        //var values = rolodex;
                        //console.log(JSON.stringify(values));
                        var identifier = $stateParams.clientId;

                        var v =  _.filter(rolodex, {clients: [{_id: identifier}]});
                        console.log(v[0].clients[0]);
                        return v[0].clients[0];
                    }
            }
    });
G

我想我很快就和你谈过了,这个lodash脚本不能正常工作。 如果我的辅助数组包含多个条目,我将在结果集中获得两个条目

[
  {
    "letter": "C",
    "clients": [
      {
        "_id": "58f6b8a932edbb7dd718f05a",
        "firstName": "Casie",
        "lastName": "L"
      },
      {
        "_id": "58f68b0d527cc336a8f86cc8",
        "firstName": "Chad",
        "lastName": "M"
      }
    ]
  },
  {
    "letter": "G",
    "clients": [
      {
        "_id": "58f2ab99319e35299b1ee4a9",
        "firstName": "Gary",
        "lastName": "R"
      }
    ]
  },
  {
    "letter": "J",
    "clients": [
      {
        "_id": "58f6b90032edbb7dd718f05c",
        "firstName": "Jett",
        "lastName": "F"
      }
    ]
  },
  {
    "letter": "S",
    "clients": [
      {
        "_id": "58f61681e32f1927a41c19bf",
        "firstName": "Shelly",
        "lastName": "R"
      },
      {
        "_id": "58f6b8d632edbb7dd718f05b",
        "firstName": "Shirley",
        "lastName": "A"
      }
    ]
  }
]
提供包含正确id的正确数组

[
    {
        "letter": "S",
        "clients": [
            {
                "_id": "58f61681e32f1927a41c19bf",
                "firstName": "Shelly",
                "lastName": "R"
            },
            {
                "_id": "58f6b8d632edbb7dd718f05b",
                "firstName": "Shirley",
                "lastName": "A"
            }
        ]
    }
]
但我希望我的结果是这样的

{
    "_id": "58f61681e32f1927a41c19bf",
    "firstName": "Shelly",
    "lastName": "R"
}
这可能是我的答案

var b = _(data).thru(function(col1){
return _.union(col1, _.map(col1, 'clients'));
})
.flatten()
.find({_id : '58f61681e32f1927a41c19bf'});

这一方法目前似乎有效

var b = _(data).thru(function(col1){
return _.union(col1, _.map(col1, 'clients'));
})
.flatten()
.find({_id : '58f61681e32f1927a41c19bf'});

这是Angular的不可知论。这应该有效,你的正确答案是它确实有效,但在我的代码中似乎不太有效。BRB提琴使用的是lodash 3.6我使用的是4.17.4好的,用4.17.4代替了3.6,它可以工作,一定是有些变化