我正在创建一个对象,用于通过 ajax 将数据传送回服务器。
根据服务器更新应包含的数据将属性添加到对象。其中两个属性在每个更新对象中FruitID
,并且PeachID
但是,当更新对象为 ajax 调用呈现自身并且只有这两个属性时,我想取消调用。
如何确定一个对象只包含某些属性?
感谢您的建议。
我正在创建一个对象,用于通过 ajax 将数据传送回服务器。
根据服务器更新应包含的数据将属性添加到对象。其中两个属性在每个更新对象中FruitID
,并且PeachID
但是,当更新对象为 ajax 调用呈现自身并且只有这两个属性时,我想取消调用。
如何确定一个对象只包含某些属性?
感谢您的建议。
听起来你想使用hasOwnProperty
if (myObject.hasOwnProperty("FruitID")) { ... }
另一种选择可能是使用Object.keys
,但它仅在现代浏览器中受支持。不过,进行比较会更容易,看看是否只有这些属性存在。
var obj = {a:"property 1",b:"property 2"} // Or whatever object you want to check.
if(Object.keys(obj).length == 2 // If the object only has 2 keys,
&& obj["FruitID"] // And FruitID exists as property of the object,
&& obj["PeachID"]){ // And PeachID exists as property of the object,
// The object only contains FruitID & PeachID;
}
或者将其包装在一个函数中:
function isBaseObject(obj){
return !!(Object.keys(obj).length == 2 && obj["FruitID"] && obj["PeachID"]); // !! to cast the output to a boolean
}
isBaseObject({FruitID:"property 1",PeachID:"property 2"})
//true
isBaseObject({FruitID:"property 1",PeachID:"property 2", a:1})
//false
isBaseObject({a:1})
//false
你需要使用hasOwnProperty
.
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty
o = new Object();
o.prop = 'exists';
o.hasOwnProperty('prop'); //returns true