JSCalc。从列表中返回值

时间:2017-07-29 04:57:48

标签: calculator

我试图从'重复项'输入中返回值。但'inputs.value'不起作用。我想我需要为列表中的每个项目创建一个循环和索引但不确定。

1 个答案:

答案 0 :(得分:0)

  

我想我需要为列表中的每个项目创建一个循环和索引。

是。你是对的。 “重复项”在内部存储为对象数组。所以你需要迭代那个数组来处理它。单个项目是对象,因此您不会直接在inputs对象上使用,而是通过inputs.lineitems,其中lineitems是重复项目原型的属性名称。

例如:

您正在创建要订购的项目的重复项目列表。因此,您在重复项原型中有两个输入,例如itemNameitemQuantity。您将重复项属性名称命名为LineItems。您希望将其显示为输出表格,并显示已订购的总数量。输出表名为Orders,总标签名为Total

然后您可以对此进行迭代以进一步处理它,如下所示:

var result = [], totalItems = 0;

其中result是您要映射到输出表的数组,totalItems是缓存总数量的位置。

inputs.LineItems.forEach(function(item, idx) { 
  totalItems += item.itemQuantity;
  result.push({ 
    'ItemNumber': idx + 1, 
    'Item': item.itemName, 
    'Quantity': item.itemQuantity
  });
});

在哪里,您通过inputs.LineItems迭代重复项并相应地增加total。您还准备result数组以便稍后映射到Orders表。

这是你的回报:

return { 
    Total: totalItems,
    Orders: result
};

其中,Total是您之前定义的输出标签,Orders是您之前定义的输出表名。

这是一个让您更好地理解它的演示:

https://jscalc.io/calc/YicDJYCSlYTGYFMS

要查看来源,只需点击省略号(在Powered by JSCalc.io'文本之后显示的三个点),然后点击“制作副本”。

希望这会有所帮助。