Javascript数组出错

Javascript数组出错,javascript,arrays,Javascript,Arrays,我有一个数组,在1次迭代后似乎出错了。我正在查询数据库订单并返回值。如果查询只返回1组数据,则它可以工作,但如果MyOrder[1]上出现多个I错误。我认识到这与我只声明数组中的一行有关,但我不知道数组需要多大,因为查询可能是1或多行,因此如何正确避免在I=1的迭代中出错 var myOrders = [ { "Date": " ", "Order": " ", "Units": " ", "Cost": " " }, ]; var o = orders.orders

我有一个数组,在1次迭代后似乎出错了。我正在查询数据库订单并返回值。如果查询只返回1组数据,则它可以工作,但如果MyOrder[1]上出现多个I错误。我认识到这与我只声明数组中的一行有关,但我不知道数组需要多大,因为查询可能是1或多行,因此如何正确避免在I=1的迭代中出错

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的外观吗?您还需要阅读我的答案的第一行,了解为什么您的问题不是第一行的答案