当前位置: 首页 > 知识库问答 >
问题:

用于嵌套json的自定义原型函数,用于检查与原型类似的密钥是否存在。hasOwnproperty()

俞新翰
2023-03-14

我目前正在用这种方法做这件事。此场景需要更好的实现:如下所示:

var testjson = {  
   "key1":"val1",
   "key2":"val2",
   "key3":{  
      "k2":"v2",
      "k3":{  
         "k4":"v4",
         "k5":"v5"
      }
   },
   "haskey": function (base, path) {
        var current = base;
        var components = path.split(".");
        for (var i = 0; i < components.length; i++) {
            if ((typeof current !== "object") || (!current.hasOwnProperty(components[i]))) {
                return false;
            }
            current = current[components[i]];
        }
        return true;
    }
}

console.log( testjson.haskey(testjson,"key3.k3.k4"));

共有1个答案

子车文康
2023-03-14

首先,很抱歉问了一个误导性的问题。我只需要一个方法来检查嵌套对象属性是否存在于JavaScript对象中。这个问题与原型无关。我刚刚创建了一个自定义方法,有两个参数,一个用于对象,另一个用于属性检查。这个工作正常,我看了这个an-后得出结论

下面是我检查对象中是否存在属性的方法

var testobject = {
  "key1": "value",
  "key2": {
    "key3": "value"
  }
}


function checkproperty(object, path) {
  var current = object;
  var components = path.split(".");
  for (var i = 0; i < components.length; i++) {
    if ((typeof current !== "object") || (!current.hasOwnProperty(components[i]))) {
      return false;
    }
    current = current[components[i]];
  }
  return true;
}

console.log(checkproperty(testobject, "key2.key3"))
 类似资料:
  • 问题内容: 我陷入一种情况,我需要检查嵌套JSON对象中是否存在密钥。通过嵌套的JSON对象,我在父JSON对象中具有一个JSON对象作为其键之一的值。所以我需要检查此密钥是否存在于整个JSON对象中。我将以下数据作为对象。我知道我可以解析此对象以获得JSON对象。 我已经使用方法来检查主要JSON对象中密钥的存在,并且它可以工作。但是对于检查任何内部JSON对象(例如“ info”),我需要再次

  • 好吧,我一直在Kotlin试验原始数据存储,我有一个问题。我正在使用以下内容。原型文件: 这是我的序列化程序类: 和我的存储库: 因此,在我的updateValue()方法中,我可以设置“name”字段的名称,但我没有地址消息字段的setter,如street和number。编译器只显示getter。在姓名和年龄字段的另一边,我有setters。如何对这两个地址字段使用setters:街道、编号?

  • 我有一个Symfony 3.3联系人表单,可以发送电子邮件,并且我希望允许选择性地上传一些附件。 我正在努力适应https://symfony.com/doc/3.3/form/form_collections.html 满足我的需要。 我的formBuilder的相关部分如下所示: ...我刚刚修改了我的树枝模板,看起来像这样... ... 此时,加载“我的页面”会产生以下消息: 带键阵列的键“

  • 问题内容: 在JavaScript中,每个对象同时是一个实例和一个类。要进行继承,可以将任何对象实例用作原型。 在Python,C ++等中,有类和实例作为单独的概念。为了进行继承,您必须使用基类创建一个新类,然后可以使用该新类来生成派生实例。 为什么JavaScript朝这个方向发展(基于原型的面向对象)?与传统的基于类的OO相比,基于原型的OO有哪些优点和缺点? 问题答案: 这里大约有一百个术

  • 问题内容: 我有带有文本框用户名的注册表。我要做的是,当用户输入用户名时,自定义指令将检查输入的用户名是否存在于数据库中。 指令.js 如果存在,我将在html表单中显示标签“用户名已存在”。 registration.html 但是现在,他们不能正常工作:-(,我在做对吗? 问题答案: yearofmoo提供 了一个很棒的教程, 介绍 有关angular1.3中的$ asyncvalidator

  • 问题内容: 如何检查字典中是否存在键?我的字典是类型的。 我不能简单地检查一下,因为这可能是由值所导致的。 有任何想法吗? 问题答案: 实际上,您的测试 可 用于检查字典中是否存在键。如果该值设置为,则不会产生: 要区分“字典中不存在键”和“键的值为零”,您可以执行嵌套的可选分配: