_.findWhere array-object属性中的array-object等于某个东西

时间:2015-06-23 22:48:27

标签: mapping underscore.js traversal

我有一个这样的数组:

var colors = [
  {
    "name": "red",
    "ids":[
      {
        "id": 1
      }
    ]    
  },
  {
    "name": "blue",
    "ids":[
      {
        "id": 5
      }
    ]    
  }
]

我基本上想要找到id中第一个id等于某个东西的对象。

_.findWhere(colors, {
  "ids.0.id": 1
})

这是最好的方法吗?

var color = _.chain(colors)
.map(function(color){
  color.id = color.ids[0].id
  return color
})
.findWhere({
  "id": 1
})
.value()

console.log(color)

1 个答案:

答案 0 :(得分:1)

_.findWhere只是_.find的便利包装器,因此如果findWhere并不能满足您的需求,请直接转到find并手动完成:

var color = _(colors).find(function(color) {
    return color.ids[0].id === 1;
});