2016-04-15 77 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; 
};