を使用してJavaScriptのオブジェクトを比較する:は、私は論理的なオブジェクト構造を持つマスター製品リストを持っているjqueryの
var myProducts = {
"productInfo":{
"productVariations":[{
"ID":XXXXXXX,
"Attributes":{
"edition":'professional',
"license":"perpetual"
}
},
{
"ID":XXXXXX,
"Attributes":{
"edition":'standard',
"license":"perpetual"
}
},
.
.
.
私が構築している製品コンフィギュレータのアプリケーションで作成され、動的に生成されたオブジェクトの配列にこれを比較しようとしています。 doesntの以下のような要素を比較するために$ .inArrayを使用して
var zcs_edition = [{ edition="standard", license="perpetual"}, { edition="professional", license="perpetual" }]
が有効であると思われる:
$.each(myProducts.productInfo.productVariations,function(i, val){
//console.log(this.productID);
//console.log(val.productAttributes );
//console.log($.inArray(val.productAttributes, zcs_edition))
});
私はここで何か間違ったことをやっている、私は半分にこれを期待されるこのリストは、一度生成された、このようになります。作業。マスターの製品リストでは、要素Attributes
を持っていますが、あなたのコードでは、あなたはproductAttribute
としてそれを参照している、とzcs_edition
あなたのリストにあなたが=
代わりの:
を使用している:
である必要があり、有効なオブジェクト
ではありません。正常に動作します。参照:http://documentcloud.github.com/underscore/#isEqual – m90