zoukankan      html  css  js  c++  java
  • 往数组中push对象, 会覆盖之前push的值

    错误代码: 

    var obj = { a: 123, b: 234, c: 345};

    var array = [ ];

    var resultObj = { };

    for(var i = 0; i < obj.length; i++) {

      resultObj.name = obj[i];

      array.push(resultObj);

    }

    得到的结果: 345, 345, 345; 而不是123, 234, 345;

    改造: 

    var obj = { a: 123, b: 234, c: 345};

    var array = [ ];

    for(var i = 0; i < obj.length; i++) {

      var resultObj = { };

      resultObj.name = obj[i];

      array.push(resultObj);

    };

    把resultObj定义在for循环中, 得到的结果就是123,234,345;

    原因: 把对象定义在外面, 始终指向一个地址, 每次赋值都赋值给了同一个地址, 所以最后赋值的会覆盖之前的值;

    把对象定义在循环中, 每次循环rusultObj都会指向不同的地址, 每次都是一个新对象

  • 相关阅读:
    通用sqlserver分页存储过程
    JSONP解决跨域请求
    laravle框架
    XML作用
    mysql 中的常用查询
    smarty模板技术
    Cookie和Session 会话技术
    正则表达式
    Mongodb常用知识点
    PHP之PDO
  • 原文地址:https://www.cnblogs.com/Shysun/p/10465754.html
Copyright © 2011-2022 走看看