Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环将数据添加到数组中,数据被覆盖_Javascript_Jquery - Fatal编程技术网

Javascript 循环将数据添加到数组中,数据被覆盖

Javascript 循环将数据添加到数组中,数据被覆盖,javascript,jquery,Javascript,Jquery,我试图循环向数组中添加数据,但带键的数据被覆盖 var minmax_数组=[]; $(“.room\u minmax\u div”)。每个(功能(索引、数据){ var room=$(this.data('room'); minmax_阵列[房间]=[]; }); $(“.room\u minmax\u div input”)。每个(功能(索引、数据){ //约会 var room=$(this.data('room'); var name=$(this.attr('name'); var值

我试图循环向数组中添加数据,但带键的数据被覆盖

var minmax_数组=[];
$(“.room\u minmax\u div”)。每个(功能(索引、数据){
var room=$(this.data('room');
minmax_阵列[房间]=[];
});
$(“.room\u minmax\u div input”)。每个(功能(索引、数据){
//约会
var room=$(this.data('room');
var name=$(this.attr('name');
var值=$(this.val();
如果(值=“”){
数值=0;
}
var obj={};
//Obj
obj[名称]=值;
minmax_阵列[房间]=obj;
});
minmax_json=minmax_数组;
log(minmax_json)

房间类型:1号房间
分钟
马克斯
房间类型:房间2
分钟
马克斯
房间类型:3号房间
分钟
马克斯

首先,您需要创建一个JSON对象,而不是数组。因此,变量和第一级字段的初始化应按以下步骤进行

var minmax_array = {};

$(".room_minmax_div").each(function(index, data) {
  var room = $(this).data('room');
  minmax_array[room] = {};
});
然后,当您使用
max
min
值更新第二级对象时,您应该检查是否已经有对象分配给该键。如果是,则应该更新该对象,而不是指定一个全新的对象

$(".room_minmax_div input").each(function(index, data) {
  //get date
  var room = $(this).data('room');
  var name = $(this).attr('name');
  var value = $(this).val();

  if(value == ''){
    value = 0;
  }

  // If there is a value for minmax_array[room], use it as obj. Otherwise create an empty object
  var obj = minmax_array[room] || {};
  //Obj
  obj[name] = value;
  minmax_array[room] = obj;

});
然后您的输出将类似于下面的内容

{
  Room1: {
    max: "14",
    min: "10"
  },
  Room2: {
    max: "7",
    min: "5"
  },
  Room3: {
    max: "10",
    min: "9"
  }
}

请在问题中填写所有相关代码。用户不需要离开网站就可以理解您的问题。我无法发布代码,我不知道代码片段是什么(问题编辑器中的
[]
按钮)。我为您编辑了它代码的输出不是您在问题中声称的,预期的输出不是有效的数组,您是指对象吗?@Rory McCrossan非常感谢@Ghassen Louhaichi我需要一些可以转换为json字符串的格式,这样数组或对象就可以了。