我知道这个问题可能重复,但其他答案都不适合我..
我正在尝试将数组中的数据表 valueS 发送到 Controller 。但是,array.push()
只返回最后一个对象。
<script>
var dd = table.rows().data().toArray();
var data1 = new Array();
var CData= {};
for (i = 0; i < dd.length; i++) {
CData.Date = dd[i][1];
CData.Description = dd[i][2];
data1.push(CData);
}
$.ajax({
type: "POST",
url: "/Test/Create",
contentType: "application/json;",
headers: { 'RequestVerificationToken': gettoken() },
data: JSON.stringify(data1:data1),
success: function () {
alert('success');
},
error: function () {
alert('failure');
}
});
</script>
如何解决?
最佳答案
这是因为您总是在修改同一个对象,而不是为 dd
的每次迭代创建一个单独的对象。
您应该在循环中创建一个新对象以避免每次都覆盖同一个对象:
for (i = 0; i < dd.length; i++) {
var CData= {}; // now new object each time
CData.Date = dd[i][1];
CData.Description = dd[i][2];
data1.push(CData);
}
关于javascript - Array.Push 仅返回最后推送的对象。如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57804920/