2017-04-02 7 views
1

포함되어 있는지 확인 나는 다음과 같은 객체를 가지고 Type.ID 값 6508이 포함 된 경우 내가 확인하고 싶은 :Underscore.js는 - 객체 배열 값

for (i = 0; i < data.item.Feature.length; i++) { 
    if (data.item.Feature[i].Type.ID == 6508) 
     return true; 
} 
return false; 
:

{ 
    "item": { 
     "Feature": [ 
     { 
      "ID": 85408, 
      "Status": { 
       "ID": 65, 
      }, 
      "Type": { 
       "ID": 6508, 
        "Volume": null 
       }, 
       "Manufacturer": null 
      }, 
      { 
      "ID": 85409, 
      "Status": { 
       "ID": 65, 
       }, 
       "Type": { 
        "ID": 6509, 
        "Volume": null 
       }, 
       "Manufacturer": null 
      } 
     ], 
     "Errors": { 
      "Result": 0, 
      "Message": "" 
     }, 
     "RecordCount": 2 
     } 
} 

내가 다음을 소집 할 수

underscore.js를 사용하여 동일한 작업을 수행하려면 어떻게해야합니까? 다음은 작동하지 않습니까?

_.contains(data.item.Feature.Type.ID, 6508) 

답변

4

이 경우 밑줄은 필요하지 않습니다. 일반 JS의 예. 다음을 수행하여 밑줄 사용하여 동일한을 달성하기 위해 내가 manged했던 한 @FakeRainBrigand JS 코드를 사용

data.item.Feature.some(function(x) { return x.Type.ID === 6508 }); 
3

: 경우에 당신은 전체 개체를 원하는 경우,

_.some(data.item.Feature, function(f) { 
     return f.Type.ID == 6508; 
}) 
0

그냥 제안 형제를 (내부 '기능 'List) 검색 기준에 따라 불리언 만 아니라 다음과 같이이 방법을 사용할 수 있습니다.

var val = _.findWhere(data.item.Feature, {'Type': _.findWhere(_.pluck(data.item.Feature, 'Type'), {ID: 6509})}); 

이 반환됩니다

{ 
"ID":85409, 
"Status":{ 
"ID":65 
}, 
"Type":{ 
    "ID":6509, 
    "Volume":null 
    }, 
"Manufacturer":null 
}