2016-09-21 17 views
3

我JSON使用值獲取從JSON對象數據如下:

{ 
    "sales": [{ 
     "manager": "alberic", 
     "surgeon": "Dr Barry Biggins", 
     "amount": "300", 
     "country": "USA", 
     "percent-seller": "30", 
     "antiquity": "June 2017", 
     "date": "6" 
    }, { 
     "manager": "support", 
     "surgeon": "Dr Barry Biggins", 
     "amount": "300", 
     "country": "UK", 
     "percent-seller": "20", 
     "antiquity": "June 2017", 
     "date": "2" 
    }, { 
     ... 
    }] 
} 

我想從那裏salesmanager = "support"檢索date = "2"的對象。我如何在jQuery中解決這個問題?

謝謝!

回答

2

只要您可以使用filter()方法和使用條件過濾方法函數內將返回元素,如果你的條件成爲真正否則忽略元件。

data= {"sales": [{ 
 
      "manager": "alberic", 
 
      "surgeon": "Dr Barry Biggins", 
 
      "amount": "300", 
 
      "country": "USA", 
 
      "percent-seller": "30", 
 
      "antiquity": "June 2017", 
 
      "date": "6" 
 
     }, { 
 
      "manager": "support", 
 
      "surgeon": "Dr Barry Biggins", 
 
      "amount": "300", 
 
      "country": "UK", 
 
      "percent-seller": "20", 
 
      "antiquity": "June 2017", 
 
      "date": "2" 
 
     }, 
 
     ] 
 
     }; 
 

 

 
var matchedElements = data.sales.filter(function(element) { 
 
    return (element.manager == 'support' && element.date == '2'); 
 
}); 
 
        
 
console.log(matchedElements); 
 
        
 
//if you want to access surgeon of first element of matchedElements 
 
        
 
console.log(matchedElements[0].surgeon); 
 

 
      
 
//if you want to access surgeon of all elements in matchedElements 
 
for(i in matchedElements)   
 
{ 
 
console.log(matchedElements[i].surgeon); 
 
}

+0

感謝,但我怎麼使用它訪問後從matchedElements醫生? – user1937021

+0

我已經從matchedElements :)修改了我的訪問外科醫生的代碼:) –

1

filtersales數組。

如果您想支持舊瀏覽器,請確保從上面的鏈接添加polyfill。

var matchingSales = jsonData.sales.filter(function(sale) { 
    return sale.manager == 'support' && sale.date == '2'; 
}); 
1

var data = { 
 
    "sales": [{ 
 
    "manager": "alberic", 
 
    "surgeon": "Dr Barry Biggins", 
 
    "amount": "300", 
 
    "country": "USA", 
 
    "percent-seller": "30", 
 
    "antiquity": "June 2017", 
 
    "date": "6" 
 
    }, { 
 
    "manager": "support", 
 
    "surgeon": "Dr Barry Biggins", 
 
    "amount": "300", 
 
    "country": "UK", 
 
    "percent-seller": "20", 
 
    "antiquity": "June 2017", 
 
    "date": "2" 
 
    }] 
 
}; 
 

 

 
$.each(data.sales, function(i, v) { 
 

 
    if (v.manager == 'support' && v.date == '2') { 
 
    console.log(v.manager) 
 
    console.log(v.surgeon) 
 
    console.log(v.amount) 
 
    } 
 

 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

遍歷他們使用.each()