我在node.js中编码的模块接受一个项目的名称和价格,将其附加到一个数组,然后输出按升序价格(从最低到最高)排序的那些项目的列表。我在排序部分遇到麻烦;每次我通过我的测试代码运行模块时,它都会给我一个" TypeError:无法读取属性' forEach'未定义",我无法弄清楚如何解决这个问题。任何帮助将非常感谢。模块代码:
'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}`);
});
答案 0 :(得分:3)
这里要解决两件事:
因此排序功能代码应该类似于:
exports.items = function(){
return list.sort(function(a, b) {
return a.price - b.price;
})
};