2012-01-04 53 views
6

tôi đã mảng sau:kiểm tra nếu đối tượng chứa các thuộc tính với giá trị

SoftwareBadges = 
[ 
    { Title: "Playtech", Guid: "7e9", xPos: "96" }, 
    { Title: "BetSoft", Guid: "890", xPos: "169" }, 
    { Title: "WagerWorks", Guid: "35c", xPos: "242" }, 
    { Title: "Rival", Guid: "c35", xPos: "314" }, 
    { Title: "NetEnt", Guid: "59e", xPos: "387" }, 
    { Title: "MicroGaming", Guid: "19a", xPos: "460" }, 
    { Title: "Cayetano", Guid: "155", xPos: "533" }, 
    { Title: "OpenBet", Guid: "cfe", xPos: "607" }, 
    { Title: "RTG", Guid: "4e6", xPos: "680" }, 
    { Title: "Cryptologic", Guid: "05d", xPos: "753" }, 
    { Title: "CTXM", Guid: "51d", xPos: "827" }, 
    { Title: "Sheriff", Guid: "63e", xPos: "898" }, 
    { Title: "Vegas Tech", Guid: "a50", xPos: "975" }, 
    { Title: "Top Game", Guid: "0d0", xPos: "1048" }, 
    { Title: "Party Gaming", Guid: "46d", xPos: "1121" } 
] 

bây giờ, tôi cần phải kiểm tra xem trên của họ có chứa một giá trị, và trả lại đối tượng ví dụ:

var test = "7e9" // Guid 

Làm thế nào để tôi nhận được đối tượng có chứa giá trị Guid này? trong mẫu, nó sẽ trả về đối tượng PlayTech.

trong C# sử dụng LINQ tôi có thể làm điều gì đó như: var x = SoftwareBadges.Where(c => c.Guid == test)

làm thế nào tôi có thể làm điều này trong javascript?

+0

thể trùng lặp của [Trong javascript, giá trị nhất định, tìm tên từ Object đen] (http://stackoverflow.com/questions/4432330/in-javascript -given-value-find-name-from-object-literal) –

+0

@ nikc.org - nó không phải là một bản sao, câu hỏi khác là sử dụng một mảng trong mảng, trong khi tôi đang sử dụng json trong mảng. – Dementic

+1

Phải thừa nhận rằng, không phải là _exact_ trùng lặp, nhưng chắc chắn bạn có thể áp dụng thông tin? http://stackoverflow.com/questions/3515934/json-object-value-based-on-other-object-value http://stackoverflow.com/questions/5181493/how-to-find-a-value-in -a-multidimensional-object-array-in-javascript http://stackoverflow.com/questions/1182082/check-for-a-value-in-a-json-object –

Trả lời

8

mảng Như kết hợp bạn có thể thử này:

for (var s in SoftwareBadges) { 
    if (SoftwareBadges[s]["Guid"] == "7e9") 
     alert(SoftwareBadges[s]["Title"]); 
} 
3

Array#filter có thể đến tiện dụng

(SoftwareBadges.filter(function(v) { 
    return v['Guid'] == '7e9'; 
}))[0] 

Lưu ý rằng filter là một phần của ECMA5 và có thể không có ở một số các trình duyệt.

Bạn có thể xem https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter để biết tài liệu chi tiết.

+0

thậm chí do điều này có thể hữu ích trong tương lai xa, giải pháp trình duyệt chéo cho những ngày này cần thiết. – Dementic

Các vấn đề liên quan