[Freecodecamp]インベントリの更新



Inventory Update



トピック要件

エクササイズの上のFreecodecamp
タイトルの要件は次のとおりです。
新しい入荷品を含む2次元配列に従って、既存の在庫(arr1内)で2次元配列を更新します。商品がすでに存在する場合は、数量を更新します。対応する商品がない場合は、それを配列に追加して、最新の数量を更新します。現在の在庫配列を返し、商品名のアルファベット順に並べます。

問題が発生した場合は、エラーのヒントを確認し、ドキュメントを読み、検索し、質問することを忘れないでください。



問題分析

1.更新シーケンスは次の配列に従う必要があります(forループ)
2.倉庫もプロセス中に変更されます
3.同じタイプの場合は数量を増やし、そうでない場合はウェアハウスに新しいアレイを追加します
4.追加後の配列は、名前に従ってソートする必要があります

コードソリューション

1.新しいアイテムを追加する関数。既に存在するかどうかに応じて、配列に単一の配列要素を追加します。



function updateSingle(singleArr){//The input is a single array arr1 is the warehouse in the global variable for(var j = 0 j if(singleArr.indexOf(arr1[j][1])>-1){//If there is the same name, only increase the number arr1[j][0] = arr1[j][0] + singleArr[0] return console.log('yes!')//Directly return without running the following code } } console.log('no')//The original warehouse did not add the array as an element to the warehouse (arr1) arr1.push(singleArr) }

2.更新とウェアハウスを追加します

for(var x = 0 x //After this operation, the arr1 warehouse is the latest

3.名前で並べ替え

arr1.sort(function(value1,value2){ var a = value1[1] var b = value2[1] a = a.toLowerCase() b = b.toLowerCase() return a > b })

完全なコード:

function updateInventory(arr1, arr2) { function updateSingle(singleArr){ for(var j = 0 j if(singleArr.indexOf(arr1[j][1])>-1){ arr1[j][0] = arr1[j][0] + singleArr[0] return false } } arr1.push(singleArr) } for(var x = 0 x function(value1,value2){ var a = value1[1] var b = value2[1] a = a.toLowerCase() b = b.toLowerCase() return a >b }) console.log(arr1) return arr1 } // Warehouse inventory example var curInv = [ [21, 'Bowling Ball'], [2, 'Dirty Sock'], [1, 'Hair Pin'], [5, 'Microphone'] ] var newInv = [ [2, 'Hair Pin'], [3, 'Half-Eaten Apple'], [67, 'Bowling Ball'], [7, 'Toothpaste'] ] updateInventory(curInv, newInv)

トウラビット
コメントへようこそ、いいね、コメントはあなた自身にポイントを追加することができます