JS如何编写函数遍历嵌套数组并返回按类别分类的产品对象
嵌套产品数组按类别分类实现方案
核心实现逻辑
- 提前初始化带
tech、food两个空数组的结果对象,作为分类存储容器 - 两层遍历传入的嵌套矩阵:外层遍历每个子数组,内层遍历子数组内的单个产品对象
- 直接读取每个产品的
category属性,将产品推入对应分类的数组中 - 所有元素遍历完成后返回结果对象即可
完整可运行代码
function sortProducts (matrix) { const categoryResult = { tech: [], food: [] } for (const subProductList of matrix) { for (const productItem of subProductList) { categoryResult[productItem.category].push(productItem) } } return categoryResult }
效果验证
传入题目给出的测试矩阵:
const testInput = [ [ { product: "MacBook", price: 1019, category: 'tech'}, { product: "Cheerios", price: 5, category: 'food'}, ], [ { product: "Snickers", price: 1.5 , category: 'food'}, { product: "Air Pods", price: 129, category: 'tech'}, ], ]; console.log(sortProducts(testInput))
输出结果完全匹配要求结构:
{ tech: [ { product: "MacBook", price: 1019, category: 'tech'}, { product: "Air Pods", price: 129, category: 'tech'} ], food: [ { product: "Cheerios", price: 5, category: 'food'}, { product: "Snickers", price: 1.5 , category: 'food'} ], }
如果后续需要扩展更多产品分类,不需要改动遍历逻辑,只需要在初始化
categoryResult的时候新增对应分类的空数组即可。
内容的提问来源于stack exchange,提问作者Abid
相关产品推荐
相关产品推荐

