2016-09-21 59 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()