2016-04-15 79 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

您可以創建模擬對象中的數據的對象,並在不進行遍歷的情況下對其進行更改。 例如像角度$ scope.form – zmii

回答

0

使用Object而不是Array作爲數據結構。據我所知,你的product_id是獨一無二的,所以它應該是一個關鍵。

function variationCheck(data) { 
    variationsObject[data.productId] = data; 
};