【问题标题】:How to efficiently check if a Key Value pair exists in a Javascript "dictionary" object如何有效地检查 Javascript“字典”对象中是否存在键值对
【发布时间】:2013-12-18 21:50:00
【问题描述】:

给定:

        var dic = {1: 11, 2: 22}

如何测试 (1, 11) 是否存在?

【问题讨论】:

    标签: javascript jquery object dictionary


    【解决方案1】:

    如果您需要检查这两个键是否存在,并且有一个值,那么下面的代码效果最好:

    function hasKeySetTo(obj,key,value)
    {
        return obj.hasOwnProperty(key) && obj[key]==value;
    }
    

    只有当 obj 有一个名为 key 的键并且该键的值是 value 时,它才会返回 true。

    【讨论】:

    • 如果value 是假的并且对象确实有它怎么办?
    • @Jon 我完全忽略了这一点,但我编辑了函数来解决它。
    【解决方案2】:

    大多数时候很简单,用

    if (dic[1] === 11)
    

    有一个警告:如果您要查找的值是 undefined,则不会这样做,因为它无法区分 { 1: undefined } 和只是 {}。在这种情况下,您需要更详细的测试

    if ('1' in dic && dic[1] === undefined)
    

    【讨论】:

      【解决方案3】:

      Nushorn Java script engine你也可以这样做

      if (dic.0) print('tested for null and key 0 exist')

      【讨论】:

      • 那是塔吉克斯坦的一个村庄吗?不错的尝试
      • 感谢@LastTribunal 指出它需要澄清什么/在哪里 - Nushor Java 脚本引擎,而不仅仅是 Nushor :)
      猜你喜欢
      • 2012-03-27
      • 2016-03-20
      • 1970-01-01
      • 2020-06-18
      • 1970-01-01
      • 2021-11-25
      • 2019-11-12
      相关资源
      最近更新 更多