对象没有正确推入数组

时间:2014-04-18 12:16:30

标签: jquery arrays

我正在尝试将对象推入jQuery $.each循环中的数组,但是当我尝试将对象推入数组时,它无法正确存储并覆盖先前在数组中的内容。 / p>

代码如下所示:

var ing = {};
var mData = [];

$.post('find.php', {levels:levels}, function(res){
        var resData = $.parseJSON(res);
        if (resData.success == true){

            var mName = resData.m_name;
            var p = resData.p;
            $.each(p, function(key,val){

                ing.name = val.name;
                ing.weight = val.weight;
                ing.i_count = val.i_total;
                ing.l_count = val.l_total;
                //console.log(ing);
                mData.push(ing);
                //console.log(mData);
            });

        }
    });
 console.log(mData);

ing变量显示了我每次在循环中所期望的数据,但是当数据被推入数组时,第二个索引会覆盖数组的第一个索引,从而产生类似这样的结果。

 { name="tea", weight="250", i_count=26, l_count = 1},{ name="tea", weight="250", i_count=26, l_count = 1}

所以我的问题是我将数据推送到数组的方式有什么问题?

1 个答案:

答案 0 :(得分:2)

您在$.each方法之外声明了变量。这有效地覆盖了每一次。 在$.each循环代码中声明它。

$.each(p, function(key,val){
  var ing = {}
   ...
   ... update ing variable