我有以下数组:
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" }
]
现在,我需要检查它们是否包含值,并返回对象,例如:
var test = "7e9" // Guid
如何获取包含此Guid值的对象?
在示例中,它应该返回PlayTech
对象。
在C#中使用linq我可以做类似的事情:
var x = SoftwareBadges.Where(c => c.Guid == test)
我怎样才能在javascript中执行此操作?
答案 0 :(得分:8)
作为关联数组,你可以试试这个:
for (var s in SoftwareBadges) {
if (SoftwareBadges[s]["Guid"] == "7e9")
alert(SoftwareBadges[s]["Title"]);
}
答案 1 :(得分:3)
Array#filter
可能会派上用场
(SoftwareBadges.filter(function(v) {
return v['Guid'] == '7e9';
}))[0]
请注意,filter
是ECMA5的一部分,可能在某些浏览器中不可用。
您可能会看到https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter的详细文档。