我目前正在通过此方法执行此操作。需要更好地实现此场景: 以下是:
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"));
答案 0 :(得分:0)
首先很抱歉提出误导性的问题。我只需要一个方法来检查嵌套对象属性是否存在于JavaScript对象中。这个问题与原型无关。我刚刚创建了一个自定义方法,其中两个参数用于对象,另一个用于要检查的属性。这很好用,我在查看此问题后得出结论:&Checking if a key exists in a JavaScript object?
这是我在Object中检查属性是否存在的方法
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"))