2016-11-18 21 views
-2

ありがとう、読んでくれてありがとう!多次元配列の検索キー値のペア

値があるかどうかを調べるために検索する必要があるJSONオブジェクトがあります。私が抱えている問題は、「地面プール」が存在するかどうかをテストするために、フィーチャー配列内の配列を調べています。

ありがとうございました!

targetListingは私のJSONオブジェクト

var targetFeature = "In Ground Pool"; 

function valuateFeature(targetFeature){ 
    for(var i = 0, len = targetListing.Features.length; i < len; i++) { 
     if(targetListing.Features[i][0] === targetFeature) { 
      return true 
     }else{ 
      return false 
     } 
    }; 

} ; 

Address 
 
: 
 
Object 
 
AgentEmail 
 
: 
 
"xxxxx" 
 
AgentId 
 
: 
 
"xxxx" 
 
AgentName 
 
: 
 
"Richard Getz" 
 
AgentPhone 
 
: 
 
"xxxx" 
 
AllListings 
 
: 
 
false 
 
Bath 
 
: 
 
0 
 
Bedroom 
 
: 
 
5 
 
Brokerage 
 
: 
 
"xxxx" 
 
BuildingStyle 
 
: 
 
"House" 
 
BuildingStyleId 
 
: 
 
1 
 
DaysPosted 
 
: 
 
0 
 
Description 
 
: 
 
"If you've ever ..." 
 
Features 
 
: 
 
Array[2] 
 
0 
 
: 
 
Object 
 
Description 
 
: 
 
"In Ground Pool" 
 
__proto__ 
 
: 
 
Object 
 
1 
 
: 
 
Object 
 
Description 
 
: 
 
"Attached Garage" 
 
__proto__ 
 
: 
 
Object 
 
length 
 
: 
 
2 
 
__proto__ 
 
: 
 
Array[0] 
 
HouseType 
 
: 
 
"Mediterranean" 
 
HouseTypeId 
 
: 
 
3 
 
Images 
 
: 
 
Array[0]

+0

JSONを投稿した方が良いでしょう(jsonlint.comを使ってきれいにフォーマットしてください)。あなたの質問からデータの構造を伝えることは不可能です。 – Barmar

答えて

0

はそのようなlodash.filter

var foundListings = _.filter(targetListing.Features, function() { 
    return this[0] === targetFeature 
} 

var found = foundListings.length > 0; 

何かを見てくださいています。適切なロダッシュ関数がいくつかあります。 findおそらく

https://lodash.com/docs/4.17.2#filter

+0

ネイティブのJavaScript配列には、すでに広くサポートされているフィルタメソッドが用意されています。 –

0

私はそれを見つけました:)

私はきちんと配列内のターゲットにする必要がありました。

targetListing.Features[0]["Description"]