Javascript 检查对象是否包含具有值的属性

Javascript 检查对象是否包含具有值的属性,javascript,arrays,json,Javascript,Arrays,Json,我有以下数组: 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: "

我有以下数组:

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=softwarebacks.Where(c=>c.Guid==test)

如何在javascript中实现这一点?

Array#filter
可能很方便

(SoftwareBadges.filter(function(v) {
  return v['Guid'] == '7e9';
}))[0]
请注意,
filter
是ECMA5的一部分,在某些浏览器中可能不可用


您可以查看详细文档。

作为关联数组,您可以尝试以下操作:

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

@nikc.org可能重复-它不是重复的,另一个问题是在数组中使用数组,而我在数组中使用json。诚然,不是完全重复的,但您肯定可以应用信息?最后一条评论中的第一个示例是无用的,第二个示例使用的是
过滤器
,它不是交叉浏览器,第三个示例使用的是double for循环(执行时间更长),看看Francesco的回答有多好:)正如我所说的,可能不是完全重复的,但所有的情况或多或少都与您所要求的相似。不使用可用的信息并将其应用于您的特定问题是懒惰和没有建设性的。如果我显得粗鲁,我很抱歉,这不是我的本意,但是我看到太多的问题已经被回答了很多次了。从长远来看,这将导致信息更难找到,从而降低每个人的价值。即使这可能在遥远的将来派上用场,现在仍然需要一个跨浏览器的解决方案。