zoukankan      html  css  js  c++  java
  • 将一个对象push到数组之中的几点问题

    在项目开发中我们需要向意数组中添加对象:首先想到的是利用数组的api,----push

    demo

    var ar = [1,2,3]
    var ar2 = [11,22,33]
    var obj = { a : 0, b : 0 }
    var myar = [];
    for(var i = 0; i < 3; i ++)
    {
    obj.a = ar[i];
    obj.b = ar2[i];
    myar.push(obj)
    }
    alert(myar[0].a);  //3

    alert(myar[1].a); //3

    alert(myar[2].a); //3

    为什么都是3呢??

    分析:

    因为obj这个对象实在for循环外面生成的,在每一的循环时,我们都是利用的同一个对象,因此会进行覆盖。

    正确的做法:

    var ar = [1,2,3]
    var myar = [];
    for(var i in ar)
    {
    obj2 = {a: ar[i], b:ar[i]}; //每次的循环都会新建一个对象
    myar.push(obj2);
    }
    alert(myar[0].a) ;//1

    alert(myar[1].a) ;//2

    进一步的用法:

    s.sure_user_list.forEach(function (item) {//遍历下一步审批人列表,添加新的内容
    lastSort = lastSort + 1;//排序加1
    ;
    /*
    Idea_approval[Idea_approval.length-1]=[{
    approval_company_user_id: item.id,
    ideasid: Idea_approval[c_approval_i].approval.ideasid,
    sort: lastSort
    }];
    */
    var obj={
    approval_company_user_id: item.id,
    ideasid: Idea_approval[c_approval_i].approval.ideasid,
    sort: lastSort
    }
    Idea_approval.push({approval:obj});

    });
  • 相关阅读:
    C++中左移<<的使用
    学会构造素数序列
    有关lower_bound()函数的使用
    Codeforces Round #166 (Div. 2)
    暴力swap导致TLE问题解决办法
    memset的正确使用
    Codeforces Round #297 (Div. 2)
    Codeforces Round #170 (Div. 2)B
    Codeforces Round #176 (Div. 2)
    C/C++ sort函数的用法
  • 原文地址:https://www.cnblogs.com/evaling/p/6654631.html
Copyright © 2011-2022 走看看