Node.js中如何用loadProducts为对象加载数据并调用getItemsType?
实现可加载数据的orderProducts对象方案
当然可以实现你想要的功能!核心思路是在orderProducts对象内部维护一份加载后的产品数据,这样getItemsType方法就能直接访问这份数据进行筛选。下面是调整后的完整代码:
const orderProducts = { // 内部存储加载后的产品数据(下划线是Node.js里约定的"私有属性"标识) _products: [], loadProducts: function(data) { // 将传入的数据赋值给内部属性,完成加载 this._products = data; }, getItemsType: function(types) { // 过滤出类型匹配的产品并返回 return this._products.filter(product => types.includes(product.type)); } };
完整使用流程示例
// 1. 准备示例数据(实际场景可以是从数据库/文件读取的真实数据) const sampleProductData = [ { id: 1, type: 'abc', name: '桌面音箱' }, { id: 2, type: 'ddd', name: '无线耳机' }, { id: 3, type: 'xyz', name: '游戏手柄' } ]; // 2. 先调用加载方法存入数据 orderProducts.loadProducts(sampleProductData); // 3. 再调用方法获取指定类型的条目 const targetItems = orderProducts.getItemsType(['abc', 'ddd']); console.log(targetItems); // 输出结果: [{ id: 1, type: 'abc', name: '桌面音箱' }, { id: 2, type: 'ddd', name: '无线耳机' }]
关键细节说明
- 我们添加了
_products内部属性来存储加载的数据,这个命名方式在Node.js生态里是常见的“私有属性”提示(虽然JS没有真正的私有属性,但能明确告知其他开发者不要直接修改这个属性)。 loadProducts方法通过this._products = data把外部数据绑定到对象内部,确保后续的getItemsType能稳定访问到数据。getItemsType利用数组的filter和includes方法完成筛选逻辑,简洁高效,完全适配Node.js环境(不需要依赖任何浏览器API)。
内容的提问来源于stack exchange,提问作者user88432
相关产品推荐
相关产品推荐

