gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:35:00 26 4
gpt4 key购买 nike

我正在将大量变量传递给 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com