javascript-Javascript 数组覆盖问题

问题描述

Javascript 数组覆盖问题

有这么一段代码:

        var datas=[];
        var data={};
        var i=0;
        $(".baby-panel").each(function(){
            var baby_id=$(this).children(".babyid").attr("baby_id");
            var baby_name=$(this).children(".babyname").find("input[name='baby"+i+"_name']").val().trim();

            var baby_sex=$(this).children(".babysex").find("input[type=radio]:checked").val();
            var baby_birth=$(this).children(".babybirth").find(".form-control").val();

            data["id"]=baby_id;
            data["name"]=baby_name;
            data["sex"]=baby_sex;
            data["birth"]=baby_birth;

            datas[i]=data;
            i++;
        });

**问**:如何循环将data的数据添加到datas中,现在datas的数据都是data的最后一条记录。
例如:data={["id":1,"name":1,"sex":1,"birth":2014-05-05],["id":2,"name":2,"sex":2,"birth":2014-06-05]}

经过each()遍历后,datas的输出**却是**[{"id":"2","name":"2","sex":"2","birth":"2014-06-05"},{"id":"2","name":"2","sex":"2","birth":"2014-06-05"}],

而不是:[{"id":"1","name":"1","sex":"1","birth":"2014-05-05"},{"id":"2","name":"2","sex":"2","birth":"2014-06-05"}]

解决方案

解决方法:

            var datas=[];
    //var data={};//把data放到循环里面,否则会覆盖
    var i=0;
    $(".baby-panel").each(function(){
                    **  var data={};//每次新建一个data**
        var baby_id=$(this).children(".babyid").attr("baby_id");
        var baby_name=$(this).children(".babyname").find("input[name='baby"+i+"_name']").val().trim();

        var baby_sex=$(this).children(".babysex").find("input[type=radio]:checked").val();
        var baby_birth=$(this).children(".babybirth").find(".form-control").val();

        data["id"]=baby_id;
        data["name"]=baby_name;
        data["sex"]=baby_sex;
        data["birth"]=baby_birth;

      **  datas.push(data);**
        i++;
    });

解决方案二:

javascript数组问题
JavaScript规范之数组

解决方案三:

用数组的push方法加进来

时间: 2024-07-31 00:37:41

javascript-Javascript 数组覆盖问题的相关文章

javascript循环数组的方法

javascript数组:记录一下! 一个数组: 01.<script> 02. var colors = { 03. "1" : { 04. "a" : "#000000", 05. "b" : "#fdf6ed", 06. "c" : "#634322", 07. "d" : "#c8ab8f", 08. &qu

JavaScript判断数组是否包含指定元素的方法

  本文实例讲述了JavaScript判断数组是否包含指定元素的方法.分享给大家供大家参考.具体如下: 这段代码通过prototype定义了数组方法,这样就可以在任意数组调用contains方法 ? 1 2 3 4 5 6 7 8 9 10 11 12 /** * Array.prototype.[method name] allows you to define/overwrite an objects method * needle is the item you are searching

JavaScript实现数组随机排序的方法

  本文实例讲述了JavaScript实现数组随机排序的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 function Shuffle(o) { for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x); return o; }; 使用方法: ? 1 2 3 4 5 6 7 8 var testArray = [1,2,3,4,5];

javascript删除数组重复元素的方法汇总

  本文实例讲述了javascript删除数组重复元素的方法.分享给大家供大家参考.具体分析如下: 这里分享一个前端面试高频题,主要实现javascript删除数组重复元素.希望对初学者有所帮助 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 //数组去重的方法 Array.prototype.unique=function(){ //集中声明变量 var oldArr=this, newArr=[oldArr[0]], len=oldA

JavaScript获取数组最小值和最大值的方法

 本文实例讲述了JavaScript获取数组最小值和最大值的方法.分享给大家供大家参考.具体如下: 1 2 3 4 5 6 var arr = new Array(); arr[0] = 100; arr[1] = 0; arr[2] = 50; var min = Math.min.apply(null, arr), max = Math.max.apply(null, arr); 希望本文所述对大家的javascript程序设计有所帮助.

javascript中数组是如何求最大值

 数组如何求最大值,想必很多的朋友都不会吧,本文为大家介绍下javascript中数组是如何求最大值的,感兴趣的朋友不要错过 代码如下: <html>  <head>  <title>数组的最大值的获取</title>    <script>  //定义数组  var arr = [1,4,3,9,5,0,-1,7,22];    //最大值的下标,先假定为第一个元素的下标  var index = 0;  for(var x = 0; x &l

javascript中数组的concat()方法的具体使用

 数组的concat()方法想必大家比不陌生吧,在本文为大家介绍下javascript中数组的concat()方法的具体使用,感兴趣的朋友可以参考下 代码如下: <html>  <head>  <title>数组的concat()方法</title>    <script>  /*  数组的concat()方法:  1.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本.  2.返回一个新的数组.该数组是通过把所有 arrayX 参数添加

JavaScript把数组作为堆栈使用的方法

 这篇文章主要介绍了JavaScript把数组作为堆栈使用的方法,实例分析了javascript操作数组的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JavaScript把数组作为堆栈使用的方法.分享给大家供大家参考.具体如下: JavaScript把数组作为堆栈使用的代码范例,支持堆栈常用的push和pop方法 ? 1 2 3 4 5 6 7 8 <script type="text/javascript"> var numbers = [&q

JavaScript删除数组元素的方法

 这篇文章主要介绍了JavaScript删除数组元素的方法,实例分析了javascript中delete函数的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JavaScript删除数组元素的方法.分享给大家供大家参考.具体分析如下: JS中可以通过delete删除数组元素,但是删除后数组的大小不会改变 ? 1 2 3 4 5 6 7 8 9 <script type="text/javascript"> <!-- var days = [

JavaScript将数组转换成CSV格式的方法

 这篇文章主要介绍了JavaScript将数组转换成CSV格式的方法,实例分析了javascript使用valueOf方法将数组值转换为csv格式字符串的技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了JavaScript将数组转换成CSV格式的方法.分享给大家供大家参考.具体分析如下: JavaScript中数组对象的valueOf方法可以将数组的值输出为逗号分割的字符串,下面的代码演示了如何将数组抓换成逗号和竖线分割的字符串 ? 1 2 3 4 var fruits =