2016-04-15 8 views
0

オブジェクトを配列にプッシュしようとしています。ユーザーが選択オプションを変更した場合、オブジェクトは再びプッシュされますが、前のオブジェクトは同じproduct_idに置き換えられます。jQueryは古い値の配列をチェックし、新しい値を配列にプッシュ

ご協力いただきありがとうございました。

function variationCheck(data) { 
    for (var i = 0; i < variationArray.length; i++) { 
     if (variationArray[i].product_id === data.id) { 
      var pushData = {'product_id':data.id,'variation_id':data.variation,'attribute_covers':data.covers,'attribute_extras':data.extras}; 
      variations.push(pushData); 
      console.log(variations); 
      for(var c = 0; c < variations.length; c++) { 
       if(variations[c].product_id === data.id) { 
        variations.splice(c, 1); 
        var pushData = {'product_id':data.id,'variation_id':data.variation,'attribute_covers':data.covers,'attribute_extras':data.extras}; 
        variations.push(pushData); 
        console.log(variations); 
       } 
      } 
     }; 
    }; 
}; 
+0

データを模倣したオブジェクトを作成し、トラバーサルなしで変更することができます。 angular $ scope.formのような – zmii

答えて

0

データ構造として配列の代わりにオブジェクトを使用します。私があなたのproduct_idがユニークであると理解している限り、それは鍵でなければなりません。

function variationCheck(data) { 
    variationsObject[data.productId] = data; 
}; 
関連する問題