You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 22:54:20