循环给数组push对象,数组中只有最后一个对象

let list = []
let list1 = [
    {d:"1"},
    {e:"2"},
    {f:"3"},
  ]
let data = {
   a:"",
   b:"",
   c:"",
};
      for (var i = 0; i < list1.length; i++) {
        data.a = list1[i].d;
        data.b = list1[i].e;
        data.c = list1[i].f;
        list.push(data);
      }
上面这种情况下不管在循环外还是循环内给list push值,list里只会有一个对象。因为data只有一个,所以 list 只能接到一个

只要把data写在循环内再给list  push值就会是多个,这样循环几次data就有几个,list 就可以接到多个
      for (var i = 0; i < list1.length; i++) {
        let data = {
        a:"",
        b:"",
        c:"",
      };
        data.a = list1[i].d;
        data.b = list1[i].e;
        data.c = list1[i].f;
        list.push(data);
      }
data里面的每一项是自定义的,一般和需要赋值的数组的字段相同,方便赋值
posted @ 2022-02-18 11:02  就这样,  阅读(783)  评论(0编辑  收藏  举报