我正在創建一個對象,我正在使用該對象通過ajax將數據帶回服務器。確定對象何時只有某些屬性
根據服務器更新應包含的數據將屬性添加到對象。其中兩個屬性位於每個更新對象中FruitID
和PeachID
但是,當更新對象呈現自己的ajax調用並且只有這2個屬性時,我想取消該調用。
我怎樣才能確定一個對象只包含某些屬性?
感謝您的建議。
我正在創建一個對象,我正在使用該對象通過ajax將數據帶回服務器。確定對象何時只有某些屬性
根據服務器更新應包含的數據將屬性添加到對象。其中兩個屬性位於每個更新對象中FruitID
和PeachID
但是,當更新對象呈現自己的ajax調用並且只有這2個屬性時,我想取消該調用。
我怎樣才能確定一個對象只包含某些屬性?
感謝您的建議。
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
if (myObject.hasOwnProperty("FruitID")) { ... }
另一種選擇可能是使用Object.keys
,但它只是在現代瀏覽器的支持。儘管做比較會更容易,看看是否只有這些屬性存在。
您需要使用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
被警告,它看起來像什麼是錯的體系結構和邏輯您選擇。 – shabunc