2017-10-22 1 views
0

node.js에서 코딩하는 모듈은 항목의 이름과 가격을 받아서 배열에 추가 한 다음 가격순의 오름차순으로 정렬 된 항목의 목록을 출력합니다 (최저 ~ 최고). . 나는 정렬 부분에 문제가있다. 내 테스트 코드를 통해 모듈을 실행할 때마다, 그것은 나에게 "TypeError : 속성을 읽을 수 없습니다 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

두 가지 :

  1. 당신은 당신의 함수에서 정렬 된 배열을 반환해야합니다.
  2. 당신은 가격 비교해야한다 (당신이 가격을 기준으로 정렬 할 경우)

그래서 정렬 기능 코드가 같은 것이 보일 것입니다 :

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

이 완벽했다! 대단히 감사합니다. – TheBudderBomb