Javascript数组出错
我有一个数组,在1次迭代后似乎出错了。我正在查询数据库订单并返回值。如果查询只返回1组数据,则它可以工作,但如果MyOrder[1]上出现多个I错误。我认识到这与我只声明数组中的一行有关,但我不知道数组需要多大,因为查询可能是1或多行,因此如何正确避免在I=1的迭代中出错Javascript数组出错,javascript,arrays,Javascript,Arrays,我有一个数组,在1次迭代后似乎出错了。我正在查询数据库订单并返回值。如果查询只返回1组数据,则它可以工作,但如果MyOrder[1]上出现多个I错误。我认识到这与我只声明数组中的一行有关,但我不知道数组需要多大,因为查询可能是1或多行,因此如何正确避免在I=1的迭代中出错 var myOrders = [ { "Date": " ", "Order": " ", "Units": " ", "Cost": " " }, ]; var o = orders.orders
var myOrders = [
{ "Date": " ", "Order": " ", "Units": " ", "Cost": " " },
];
var o = orders.orders;
var oq = o.length;
for (var i = 0; i < oq; i++) {
myOrders[i].Date = o[i].pickupDate;
myOrders[i].Order = o[i].laundry;
myOrders[i].Units = o[i].quantity;
myOrders[i].Cost = o[i].amount;
};
谢谢你能提供的任何帮助 在第二次迭代中,myOrder中只有一个元素myOrder[i]将未定义,因此myOrder[i]。someProperty将抛出错误 您只需使用map函数,将值映射到新键即可
let myOrders = o.map(({pickupDate, laundry, quantity, amount})=> ({Date, Order, Units, Cost}))
这样做。在这里,将根据o动态创建MyOrder
var myOrders = [];
var o = orders.orders;
var oq = o.length;
for (var i = 0; i < oq; i++) {
const someObject = {};
someObject.Date = o[i].pickupDate;
someObject.Order = o[i].laundry;
someObject.Units = o[i].quantity;
someObject.Cost = o[i].amount;
myOrders.push(someObject)
};
o、 map-你是说将在一行代码中将整个结果映射到数组吗?@Mr.Data是的,这将导致myOrder[i]未定义?您的代码似乎对我不起作用。没有任何内容写入数组。@Mr.Data您是否正确阅读了答案,第一行中回答了您的“为什么”。您可以发布您正在尝试的代码吗。@Mr.Data您可以发布您的o的外观吗?您还需要阅读我的答案的第一行,了解为什么您的问题不是第一行的答案