2017-07-29 9 views
1

「繰り返しアイテム」入力から値を返そうとしています。しかし、 'inputs.value'は動作しません。リストのすべての項目についてループとインデックスを作成する必要があるとは思いますが、わかりません。JSCalc。リストからの戻り値

答えて

0

私ははい

..私は、リスト上のすべての項目のループとインデックスを作成する必要があると思います。あなたはその通りです。 'Repeating Item'は内部的にオブジェクト配列として格納されています。したがって、配列を処理するには配列を繰り返し処理する必要があります。個々のアイテムはオブジェクトなので、inputsオブジェクトでは直接使用することはできませんが、inputs.lineitemsを使用します。lineitemsは繰り返しアイテムプロトタイプのプロパティ名です。例えば

あなたが注文したい項目繰り返し項目のリストを作成しています。したがって、繰り返しアイテムのプロトタイプ内に2つの入力、たとえばitemNameitemQuantityがあります。繰返し項目のプロパティ名は、LineItemsとします。出力テーブルとしてそれを照会し、発注された合計数量も表示する必要があります。出力テーブルの名前はOrders、合計ラベルの名前はTotalです。

あなたは、このように、さらにそれを処理するためにこれを繰り返すことができます:

resultはあなたの出力テーブルにマップしたい配列で、あなたは合計数量をキャッシュする場所 totalItemsがある
var result = [], totalItems = 0; 

を。

あなたが inputs.LineItems経由繰り返し項目を反復処理し、それに応じて totalをインクリメントされ、
inputs.LineItems.forEach(function(item, idx) { 
    totalItems += item.itemQuantity; 
    result.push({ 
    'ItemNumber': idx + 1, 
    'Item': item.itemName, 
    'Quantity': item.itemQuantity 
    }); 
}); 

。また、後でOrdersテーブルにマップするresultアレイを準備します。

これは、あなたが返すものです:Totalは以前に定義された出力ラベルであり、そしてOrdersは、先ほど定義し出して、テーブル名で、

return { 
    Total: totalItems, 
    Orders: result 
}; 

。あなたはそれをよりよく理解するここで


はデモです:

https://jscalc.io/calc/YicDJYCSlYTGYFMS

ソースを表示するには、単に(省略記号の上に「JSCalc.ioを搭載した後に表示3個のドットをクリックしてください'text)をクリックし、「コピーを作成」をクリックします。

これが役に立ちます。