javascript - 设置对象文字数组以将值传递给服务器

标签 javascript jquery

我正在将大量变量传递给 http 服务器。我不想编写长命令提示符,而是想将变量设置为对象文字。如果我静态设置它,它工作正常。但我想循环填充对象。 这有效:

var data= { T1: 123,
              R1: 'L',
              T2: 3434,
              R2: 'R'};

$.post(url,data, get_outcome);

但我想编写一个循环来执行此操作,并且我需要了解如何使用我的变量名称和值填充对象字面量。 (这个例子只是为了演示)如果我这样尝试它会失败:

var data=[];
data.push({T1: 123});
data.push({T2: 3434});
data.push({R1: 'L'});
data.push({R2: 'R'});

$.post(url,data, get_outcome);

我什至试过这个:

var data=[];

 var a,val,name;
     name={"T1","T2","R1","R2"};
     val={"123","3434","L","R"};
 for(a=0;a<4;a++){   
   data.push({name[a]:val[a]});
 }
 $.post(url,data,get_outcome);

最终函数应该像这样工作:

function Save(var values, var val){
 var a,name;
 var data=[];
  for(a=0;a<values;a++){
      name="T"+(a+1);
      data.push({name: val[a]});
      } 
   $.post(url,data,get_outcome);
  }

我做错了什么?

我按如下方式实现了 Rajiv 建议的解决方案:

function save(){
  var data=[];

  function dataPush(name, val) {
         var obj = {};
         obj[name] = val;
         data.push(obj);
     }
           //eg hardcoded values 
        dataPush('T1',123);
        dataPush('T2',3123);
        dataPush('R1',"R");
        dataPush('R2',"L");  
           // values stored in arrays elsewhere
    for(a=2;a<max;a++){
        temp="T"+(a+1);
        dataPush(temp,T[a]);
        temp="R"+(a+1);
        dataPush(temp,R[a]);
    }


    $.post(url,data, get_outcome);
   }

最佳答案

您正在创建一个数组。像这样创建

var data={};
data.T1 = 123;
data.T2 = 3434;
data.R1 = 'L';
data.R2 = 'R';
$.post(url,data,get_outcome);

并且在使用数组的时候

var data={};
var a,val,name;
name={"T1","T2","R1","R2"};
val={"123","3434","L","R"};
for(a=0;a<4;a++){   
   data[name[a]] = val[a];
}

关于javascript - 设置对象文字数组以将值传递给服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36913630/

相关文章:

javascript - 使用 jQuery、Javascript、PHP 获取特定零件类

javascript - fetch API 不返回与 XMLHttpRequest 相同的返回值

Javascript 从函数返回 false

javascript - 验证图像文件类型/文件大小、裁剪、调整大小然后上传

javascript - 如何在 JSON 对象中组合多个键值?

javascript - 移动优先菜单开始在 iPad 垂直打开

javascript - Jquery 只影响被悬停的类中的一个元素

('change' 上的 jQuery ) 逻辑在 ios 8.2/8.3 中表现异常

javascript - JS/Jquery - 如果输入有任何数组名称,则返回关联值

javascript - 使整个 DIV 可点击(下拉列表除外)