【问题标题】:check if object contains properties with value检查对象是否包含具有值的属性
【发布时间】:2012-02-02 09:54:39
【问题描述】:

我有以下数组:

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 中做到这一点?

【问题讨论】:

  • @nikc.org - 它不是重复的,另一个问题是在数组中使用数组,而我在数组中使用 json。
  • 最后一条评论中的第一个例子没用,第二个例子使用filter,它不是跨浏览器,第三个使用双循环(执行时间更长),看看弗朗西斯科的答案有多好:)跨度>
  • 正如我所说,可能不是 exact 重复,但所有案例都或多或少与您所要求的相似。不使用可用信息并将其应用于您的特定问题只是懒惰且没有建设性。如果我显得粗鲁,我很抱歉,这不是我的意图,但我看到太多的问题已经被回答了很多次了。从长远来看,这将导致信息更难找到,因此对每个人来说价值都降低了。

标签: javascript arrays json


【解决方案1】:

作为关联数组,你可以试试这个:

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

【讨论】:

    【解决方案2】:

    Array#filter 可能会派上用场

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

    请注意,filter 是 ECMA5 的一部分,在某些浏览器中可能不可用。

    详细文档可以看https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter

    【讨论】:

    • 即使这在遥远的将来可能会派上用场,但现在需要一个跨浏览器的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2018-03-08
    • 2023-03-26
    • 2017-10-23
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多