我需要找出项目所属对象中的哪个数组,“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'
}
]
}
}
非常感谢
答案 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