2017-10-22 3 views
0

node.jsでコーディングしているモジュールは、アイテムの名前と価格を受け取り、配列に追加し、昇順にソートされたアイテムのリストを出力します(最低から最高) 。私はソート部分に問題があります。モジュールをテストコードで実行するたびに、「TypeError:forEach 'forEach'の未定義のプロパティを読み取ることができません」というエラーが表示され、これを修正する方法がわかりません。どんな助けも非常に高く評価されるでしょう。モジュールコード:ソートリストエレメントnode.js

'use-strict'; 

let list = []; 

exports.addItem = function(name, price) { 
    let item = {name:name, price:price}; 
    list.push(item); 
    return list; 
}; 

exports.items = function(){ 
    list.sort(function(a, b) { 
     return a - b; 
    }) 
}; 

とテストコード:ここで修正する

'use strict'; 

const inventory = require('./inventory.js'); 

inventory.addItem('milk', 4.00); 
inventory.addItem('eggs', 1.20); 
inventory.addItem('orange juice', 2.40); 

inventory.items().forEach(function (item) { 
    console.log(`Item ${item.name} costs ${item.price}`); 
}); 

答えて

1

2つのこと:

  1. あなたは、あなたの関数からソートされた配列を返す必要があります。
  2. あなたが価格で比較する必要があります(あなたが価格でソートする場合)

だから、ソート機能コードのようなものが見えるはずです。

exports.items = function(){ 
    return list.sort(function(a, b) { 
     return a.price - b.price; 
    }) 
}; 
+1

これは完全に働きました!どうもありがとうございました – TheBudderBomb