找出项目所属的对象部分

时间:2016-04-05 05:05:08

标签: underscore.js

我需要找出项目所属对象中的哪个数组,“buildings”“gardens”;

所以,说我有这个......

var id = '122'

对应

a.data.gardens.item_id = 122

我需要弄清楚它是属于“建筑物”还是“花园”所以我可以这样使用它。

if (result === 'buildings') {
    // Do this
} else if (result === 'gardens') {
    // Do this
}

我想使用underscore.js,因为它已经在这个项目中被大量使用,但如果一个vanilla JS解决方案更简单,它就不是必需的。

这是对象

var a = {
   'object_handle': 'handle',
   'something_else': 'ladela',
   'some_other_thing': 'other thing',
   'data':{
      'object_id': 120,
      'buildings':[
         {
            'item_id':120,
            'title':'Some title',
         }, 
         {
            'item_id':121,
            'title':'Some other title'
         }
      ],
      'some_other_thing': 'other thing',
      'gardens':[
         {
            'item_id':122,
            'title':'Some title'
         }, 
         {
            'item_id':123,
            'title':'Some other title'

         }
      ]
   }
}

非常感谢

2 个答案:

答案 0 :(得分:1)

您可以使用some检查集合:

var id = 122;

var isGarden = _.some(a.data.gardens, {item_id: id});
var isBuilding = _.some(a.data.buildings, {item_id: id});

答案 1 :(得分:0)

你可以使用下划线这样做:

var find_id=122;

//here a is the object defined above in the OP question.

if(_.findWhere(a.data.buildings, {item_id: find_id})){
    console.log("buildings")
} else if(_.findWhere(a.data.gardens, {item_id: find_id})){
    console.log("gardens")
}

工作代码here