• js如何生成一个对象,并转化为json字符串


    js如何生成一个对象,并转化为json字符串,很多人都会误写为:

    var ary = []; 
    var obj = {};
    for (var i = 0; i < 3; i++) {
       obj.name = "name";
       obj.age = 10;
       obj.obj = i;
       ary.push(obj);
    }
    var json = JSON.stringify(ary);
    console.log(json);
    
    //输出为
    /**
     * [{"name":"name","age":10,"obj":2},{"name":"name","age":10,"obj":2},{"name":"name","age":10,"obj":2}]
     *
     **/

    正确写法:

    var ary = []; 
    for (var i = 0; i < 3; i++) {
       var obj = {};
       obj.name = "name";
       obj.age = 10;
       obj.obj = i;
       ary.push(obj);
    }
    var json = JSON.stringify(ary);
    console.log(json);
    
    //输出为
    /**
     *[{"name":"name","age":10,"obj":0},{"name":"name","age":10,"obj":1},{"name":"name","age":10,"obj":2}]
     *
     **/

    PS: 在JS定义出来的变量是Object对象,分配的是一块内存空间,你将这个对象插入到一个数组中,也是在数组内开辟一个空间指向这块内存,你在遍历是数组的容量是一直增大,但是都是指向与同一块内存对象,所以他们的值是一样的,而且是这个对象最后修改的那个值,所以最后数组的值一样,将对象在循环里面定义,则是我们想要的结果

    追崇技术,乐在分享!
  • 相关阅读:
    前缀和问题
    AtCoder Beginner Contest 085(ABCD)
    73.链表的基本操作
    112、文本串的加密
    100.容器List-ArrayList
    GUI颜色、字体设置对话框
    (贪心)多机调度问题
    POJ-1700 Crossing River
    lower_bound() upper_bound()函数
    HDU 1141
  • 原文地址:https://www.cnblogs.com/victorlyw/p/8706658.html
Copyright © 2020-2023  润新知