1

ajax経由でデータをサーバーに戻すために使用するオブジェクトを作成しています。

サーバーの更新に含まれるデータに基づいて、プロパティがオブジェクトに追加されます。2 つのプロパティはすべての更新オブジェクトFruitIDにあり、PeachID

ただし、更新オブジェクトが ajax 呼び出しに対してそれ自体を提示し、これらの 2 つのプロパティしか持たない場合、呼び出しをキャンセルしたいと思います。

オブジェクトに特定のプロパティのみが含まれていることを確認するにはどうすればよいですか?

ご提案いただきありがとうございます。

4

3 に答える 3

1

hasOwnPropertyを使用したいようです

if (myObject.hasOwnProperty("FruitID")) { ... }

別のオプションとして を使用することもできますがObject.keys、これは最新のブラウザーでのみサポートされています。ただし、これらのプロパティのみが存在するかどうかを確認するために、比較を行う方が簡単です。

于 2012-12-20T13:06:24.820 に答える
1
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
于 2012-12-20T13:07:30.873 に答える
0

を使用する必要があります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
于 2012-12-20T13:07:34.113 に答える