首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试访问JavaScript中的数组,结果未定义,不知道原因

尝试访问JavaScript中的数组,结果未定义,不知道原因
EN

Stack Overflow用户
提问于 2020-04-21 08:45:03
回答 1查看 52关注 0票数 0

我正在尝试运行一个非常基本的脚本来生成发票,现在我正处于测试阶段,试图解决我们正在使用的新InfoPlus系统的问题。无论如何,我将一个名为ordersList的二维数组声明为全局变量,然后向其添加内容,我可以在for循环中看到完美的结果,该循环遍历该数组并记录每个值,我获得了每个订单号旁边的发货数量总和。

然后,在脚本的更下面,当我再次尝试访问数组时,我得到的结果是"undefined“。我不知道为什么会发生这种情况,任何帮助都将不胜感激。

代码语言:javascript
运行
复制
utils.log("Running Invoice Worksheet Script..."); 
utils.log(""); 

utils.log("Viewing Input Entities"); 
var ordersList = [[]];
var incrementerDecrementer = 0;
var firstInputEntity = utils.inputEntities.get(0);
var skuTable = infoplusApi.search("item", "lobId eq '" + firstInputEntity.lobId + "'", null, 100, 'sku');
utils.log("SKU TABLE??? " + skuTable);
for(var i = 0; i < 2; i++)
{
    var itemID = skuTable.get(i);
    var finalItemID = itemID.toString();
    var colonPos = finalItemID.lastIndexOf(":");
    finalItemID = finalItemID.slice(colonPos+1);
    utils.log("Final ITEM ID: " + finalItemID);
    var pleaseGiveMeItemInfo = infoplusApi.getTags("item", finalItemID);
    utils.log("item info ?? " + pleaseGiveMeItemInfo);
}
//var SKUinfo = 
for(var i=0; i<utils.inputEntities.size(); i++) 
{
  var inputEntity = utils.inputEntities.get(i); 
  utils.log("       " + inputEntity.orderNo + " SKU: " + inputEntity.sku + " Shipped Qty: " + inputEntity.shippedQty); 
//  utils.log("       " + inputEntity.shippedQty);
  if(inputEntity.orderNo != ordersList[incrementerDecrementer][0])
  {
    var arrayToPush = [inputEntity.orderNo, parseInt(inputEntity.shippedQty)];
    ordersList.push(arrayToPush);
    incrementerDecrementer++;
  }
  else
  {
    ordersList[incrementerDecrementer][1] += parseInt(inputEntity.shippedQty);
  }
}
utils.log(""); 

utils.log("Manipulate data in the original lines..."); 

for(var i = 0; i < ordersList.length; i++)
{
    utils.log(ordersList[i]);
    utils.log("");
}

var orderIncrementer = 0;
for(var i=0; i< utils.inputEntities.size(); i++) 
{
  var line1 = utils.inputEntities.get(i);
  var line2 = null;
  if(i < (utils.inputEntities.size()-1))
  {
    line2 = utils.inputEntities.get(i+1);
  }
  else
  {
    line2 = utils.inputEntities.get(i);
  }
//  utils.log("     Original Line with id: " + line.lobId);
  utils.log("Line1 order num = " + line1.orderNo);
  if(line1.orderNo == line2.orderNo)
  {
    utils.log("Order numbers Match, setting extended charge to zero... ");
    line1.setExtendedCharge(0);

  }
  else
  {
    utils.log("orders list 0 1: " + ordersList[0][1]);
    utils.log("Order numbers don't match, setting extended charge to qty shipped: " + ordersList[orderIncrementer][1]);
    line1.setExtendedCharge(ordersList[orderIncrementer][1]);
    orderIncrementer++;
  }
  //line.description = "Test Change Description"; 
  //utils.setOutputLines(outputLines);
}

这里的日志输出: 16432是第一个订单号。问题是我应该获取数组值的那些未定义的东西。

正在运行发票工作表脚本...

查看输入实体SKU表?项:849,项:850,项:234,项:228,项:232,项:236,项:238,项:230,项:226,项:224,项:225,项:223,项:235,项:231,项:233,项:237,项:227,项:229,项:244,项:251,项:240,项:249,项:246,项:253,项:250,项:248,项:243,项:245,项:252,项:239,项:242,项:241,项:248,项:259,项:261,项:257,项:255,项:258,项:260,项:256,项:254,项:265,项:271,项:269,项:273,项:267,项:263,项:262,项:266,项:272,项:268,项:270,项:264,项:278,项:281,项:276,项:280,项:283,项:274,项:279,项:282,项:277,项:284,项:275,最终项目ID: 849项目信息??[]最终项目ID: 850项目信息??[] 16432.000 SKU: BBL12P-0045发货数量:0 25140.000 SKU: BBLSP-0037发货数量:0 25140.000 SKU: BBLSP-0038发货数量:0 25140.000 SKU: BBLSP-0039发货数量:0 25140.000 SKU: BBLSP 0040发货数量:0 25140.000 SKU: BBLSP-0041数量:0 25146.000 SKU: BBLSP-0037发货数量:1 25146.000 SKU: BBLSP-0038发货数量:1 25146.000 SKU: BBPSP-0037发货数量:1 25146.000 SKU: BBPSP-0038发货数量:1 25146.000 SKU: BPC13-007发货数量:1 25146.000 SKU: BPC13-008发货数量:1 25146.000 SKU: BPC13-009发货数量:1 25146.000.000 SKU: bp13-0012发货数量:1 25153.000 SKU: bp13-0007发货数量:1 25153.000 SKU: bp13-0008发货数量:1 25153.000 SKU: bp13-0009发货数量:1 25153.000 SKU: bp13-0010发货数量:1 25153.000 SKU: bp13-0012发货数量:1 25158.000 SKU: BBPSP 0034发货数量:2 25158.000 SKU: BBPSP 0035数量:2 25158.000 SKU: BRZ1-0001发货数量:2 25158.000 SKU: BRZ1-004发货数量:2 25960.000 SKU: BBPSP-0034发货数量:0 25960.000 SKU: BBPSP-0037发货数量:1 25960.000 SKU: BBPSP-0039发货数量:1 25961.000 SKU: BBPSP-0034发货数量:0 25961.000 SKU: BBPSP-0035发货数量:1 25961.000.000 SKU: BBLSP-0040发货数量:2 26144.000 SKU: BBPSP-0034发货数量:2 26144.000 SKU: BBPSP-0035发货数量:2 26144.000 SKU: BBPSP-0011发货数量:1 26146.000 SKU: BBPSP-0035发货数量:1 26146.000 SKU: BBPSP-0039发货数量:1 27793.000 SKU: BBPSP-0035发货数量:0 27793.000 SKU: BBPSP-0039发货数量:1 27793.000 SKU:BBPSP-0039发货数量:0 27793.000 SKU:BBPSP-0039发货数量:0 27793.000 SKU:BBPSP-0039发货数量:1 27793.000 SKU:BBPSP-0039发货数量:0 27793.000 SKU:BBPSP-0039发货数量:0 27793.000 SKU:BBPSP-0039发货数量:1 27793.000 SKU:BBPSP-0039发货数量:0 27793.000 SKU:BBPSP-00数量:2 27793.000 SKU: BPC13-0012发货数量:1 27793.000 SKU: BRZ1-002发货数量:1 27794.000 SKU: BPC13-009发货数量:4 27794.000 SKU: BPC13-0011发货数量:5 27797.000 SKU: BBLSP-0040发货数量:3 27797.000 SKU: BBPSP-0035发货数量:3 27797.000 SKU: BBPSP-0037发货数量:2 27797.000.000 SKU: BBPSP-0039发货数量:3 27798.000 SKU: BBPSP-0037发货数量:3 27798.000 SKU: BBPSP-0039发货数量:4 27799.000 SKU: BBPSP-0037发货数量:1 27800.000 SKU: BBPSP-0037发货数量:1 27800.000 SKU: BBPSP-0039发货数量:2 27800.000 SKU: BP9I-0002发货数量:2 27800.000 SKU: BP9I-0004数量:4 27801.000 SKU: BBPSP-0035发货数量:2 27801.000 SKU: BBPSP-0037发货数量:1 27801.000 SKU: BBPSP-0039发货数量:1 27802.000 SKU: BBPSP-0037发货数量:2 27802.000 SKU: BBPSP-0039发货数量:2 27802.000 SKU: BPC13-007发货数量:2 27802.000 SKU: BPC13-009发货数量:2 27802.000 SKU: bp13-0012发货数量:2 27808.000 SKU: BBPSP-0037发货数量:1 27808.000 SKU: BBPSP-0039发货数量:2 27808.000 SKU: bp13-009发货数量:1 27812.000 SKU: BBPSP-0038发货数量:3 27812.000 SKU: BBPSP-0035发货数量:1 27812.000 SKU: BBPSP-002发货数量:3 27828.000 SKU: BBPSP-0037发货数量:1 27812.000 SKU:BBPSP-0037发货数量:3 27828.000 SKU:BBPSP-0037发货数量:3 27828.000 SKU:BBPSP-0037发货数量:1 27812.000 SKU:BBPSP-0037发货数量:3 27828.000 SKU数量:2 27828.000 SKU: BBPSP-0038发货数量:1 27828.000 SKU: BBPSP-0039发货数量:1 27828.000 SKU: BP9I-0004发货数量:4

操作原始行中的数据...

16432.000,0

25140.000,0

25146.000,8

25153.000,5

25158.000,8

25960.000,2

25961.000,1

26144.000,7

26146.000,2

27793.000,4

27794.000,9

27797.000,11

27798.000,7

27799.000,1

27800.000,9

27801.000,4

27802.000,10

27808.000,4

27812.000,7

27828.000,8

Line1订单号= 16432.000订单列表0 1:未定义的订单号不匹配,将扩展费用设置为已发货数量:未定义

EN

回答 1

Stack Overflow用户

发布于 2020-04-22 05:00:51

我解决了这个问题。问题出在我最初使用[[]]将ordersList声明为2D数组时。这在我的数组中创建了一个未定义的数组,当我将新值添加到数组中时,这部分工作得很好,但是当我试图访问元素0时,它返回了undefined。当我尝试访问element 1或更高版本时,它工作正常。因此,我只是使用一组括号"[]“将其声明为一个简单的数组,并对代码的其他部分进行了一些编辑,它开始工作得很好。

希望这对其他可能遇到同样问题的人有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61334296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档