Javascript 操纵ajax响应
我有一个ajax post方法。我从后端获取一个对象Javascript 操纵ajax响应,javascript,jquery,arrays,ajax,object,Javascript,Jquery,Arrays,Ajax,Object,我有一个ajax post方法。我从后端获取一个对象 $.ajax({ type: "POST", url: URL_one, data: submitData }).then(function (response) { console.log("Ajax response", response); }); 当我执行console.log(响应)时;在post方法中,我看到了以下数据 >Object{Info:Array
$.ajax({
type: "POST",
url: URL_one,
data: submitData
}).then(function (response) {
console.log("Ajax response", response);
});
当我执行console.log(响应)时;在post方法中,我看到了以下数据
>Object{Info:Array[200]}
>Info:Array[200]
>[0-99]
>0:Object
name:'Ashley'
on_pay: true
valid:"0"
>[100-199]
因此,每个数组都有上面提到的对象,名称为on_pay且有效。我想做以下几件事
因为在我的例子中,所有on_pay值都是true,所以我需要将其转换为false。同样有效的字符串为0。我需要将所有值都设置为空,而不是0
有可能吗??有人能解释一下这些吗 如果我正确理解了您的问题,
响应
是一组项目。您希望保持这些项目完好无损,但请将pay上的属性false
和valid
设置为空字符串
可以使用转换每个项目
/*jslint node:true*/
"use strict";
// I am assuming your response looks something like this
var response = {
Info: [
{
name: "Ashley",
on_pay: true,
valid: "0"
},
{
name: "Jim",
on_pay: true,
valid: "0"
},
{
name: "John",
on_pay: true,
valid: "0"
}
]
};
// This will produce a new variable that will hold the transformed Info array
var fixedResponseInfo = response.Info.map(function (item) {
item.on_pay = false;
item.valid = "";
return item;
});
// This will edit the response.Info array in place
response.Info.forEach(function (item) {
item.on_pay = false;
item.valid = "";
});
console.log(fixedResponseInfo);
console.log(response);
这将保留原始响应变量,并生成一个包含转换数组的新变量fixedResponseInfo
。如果您不关心响应
中的数据是否更改,您可以使用来代替迭代。如果我正确理解您的问题,响应
是一个项目数组。您希望保持这些项目完好无损,但请将pay
上的属性false
和valid
设置为空字符串
可以使用转换每个项目
/*jslint node:true*/
"use strict";
// I am assuming your response looks something like this
var response = {
Info: [
{
name: "Ashley",
on_pay: true,
valid: "0"
},
{
name: "Jim",
on_pay: true,
valid: "0"
},
{
name: "John",
on_pay: true,
valid: "0"
}
]
};
// This will produce a new variable that will hold the transformed Info array
var fixedResponseInfo = response.Info.map(function (item) {
item.on_pay = false;
item.valid = "";
return item;
});
// This will edit the response.Info array in place
response.Info.forEach(function (item) {
item.on_pay = false;
item.valid = "";
});
console.log(fixedResponseInfo);
console.log(response);
这将保留原始响应变量,并生成一个包含转换数组的新变量fixedResponseInfo
。如果您不关心响应中的数据是否更改,您可以使用来代替迭代。考虑到您显示的JSON结构,以下内容可以用来更改付费值:
response.Info.forEach(function(item){
item.on_pay = false;
});
考虑到您所展示的JSON结构,以下内容应该可以用来更改on_pay
值:
response.Info.forEach(function(item){
item.on_pay = false;
});
发布JSON响应。响应的格式是JSON还是XML?您可以在客户端对其进行转换,但如果您可以修改服务器代码以发送所需的响应,则会更好。@Dudevan-console.log(response)不是相同的吗?@Ayesha-不是。发布JSON响应。响应的格式是JSON还是XML?您可以在客户端对其进行转换,但如果您可以修改服务器代码以发送所需的响应,则会更好。@Dudevan-控制台的日志(响应)不是相同的吗?@Ayesha-不是。Ayesha我注意到了map
和forEach
之间的差异。如果您不关心响应中的数据是否发生变化,您可以使用forEach
,正如leo.fcx在回答中所说的那样。奇怪的是,响应和fixedResponse都给出了相同的结果。i、 e.两个输出中的item.on_pay和item.value都有新值。@Ayesha i注意到map
和forEach
之间的差异。如果您不关心响应中的数据是否发生变化,您可以使用forEach
,正如leo.fcx在回答中所说的那样。奇怪的是,响应和fixedResponse都给出了相同的结果。i、 e.在两个输出中,新值都附加到item.on_pay和item.values。@leo.fcx-我希望我也选择您的答案。谢谢你的提示help@leo.fcx-我希望我也能选择你的答案。谢谢你的及时帮助