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

如何在JavaScript中遍历数组内的嵌套对象并逐个展示其属性

解决方案

原生JavaScript实现

假设product.categories为嵌套对象组成的数组,你可以先遍历数组内的所有对象,再遍历单个对象的属性值,依次拼接<li>元素即可,实现代码如下:

// 示例数据结构,和你截图的product.categories结构匹配
const product = {
  categories: [
    {
      name: 'Bath',
      path: '/bath/',
      id: 18
    },
    {
      name: 'Shop all',
      path: '/shop-all/',
      id: 23
    }
  ]
}

// 生成ul结构逻辑
let ulHtml = '<ul>\n'
product.categories.forEach(category => {
  // 按顺序取对象的属性值生成li
  Object.values(category).forEach(val => {
    ulHtml += `  <li>${val}</li>\n`
  })
})
ulHtml += '</ul>'

// 直接打印结果,或者插入到页面对应节点中
console.log(ulHtml)
// 插入页面示例:document.querySelector('.category-container').innerHTML = ulHtml

框架场景实现

Vue示例

<template>
  <ul>
    <template v-for="item in product.categories" :key="item.id">
      <li v-for="(val, idx) in Object.values(item)" :key="idx">
        {{ val }}
      </li>
    </template>
  </ul>
</template>

React示例

function CategoryRender({product}) {
  return (
    <ul>
      {product.categories.flatMap(item => 
        Object.values(item).map((val, i) => <li key={`${item.id}-${i}`}>{val}</li>)
      )}
    </ul>
  )
}

注意点

如果担心不同JS引擎遍历对象属性的顺序不符合预期,可以不用Object.values,手动指定取值顺序:[category.name, category.path, category.id],可以100%控制输出顺序和你预期一致。如果嵌套层级更深,可以把遍历逻辑抽成递归函数处理。

内容的提问来源于stack exchange,提问作者ScreamoIsDead

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:24:02