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

如何在UI网格中展示后端返回的嵌套对象数组数据?

嵌套云数据的UI网格展示实现方案

核心思路

通过两层map遍历嵌套数组:外层遍历数据中心,先处理并渲染数据中心名称(将-替换为空格);内层遍历对应数据中心下的频道列表,逐个渲染频道名称。如果仅需展示特定数据中心,可先用filter或find筛选目标项。

React场景实现代码

// 在组件的return中渲染
{cloudData.map(dataCenter => (
  <div key={dataCenter.dataCenter} className="grid-group">
    {/* 转换数据中心名称格式 */}
    <div className="dc-title">{dataCenter.dataCenter.replace('-', ' ')}</div>
    {/* 遍历渲染频道 */}
    {dataCenter.availablechannels.map(channel => (
      <div key={channel.id} className="channel-item">{channel.channelName}</div>
    ))}
  </div>
))}

纯JS DOM插入实现代码

function renderCloudGrid() {
  const gridContainer = document.getElementById('cloud-grid');
  const gridHtml = cloudData.map(dataCenter => {
    // 生成数据中心标题行
    const dcTitle = `<div class="dc-title">${dataCenter.dataCenter.replace('-', ' ')}</div>`;
    // 生成所有频道行
    const channelRows = dataCenter.availablechannels.map(channel => 
      `<div class="channel-item">${channel.channelName}</div>`
    ).join('');
    return `<div class="dc-group">${dcTitle}${channelRows}</div>`;
  }).join('');
  
  gridContainer.innerHTML = gridHtml;
}

// 调用渲染函数
renderCloudGrid();

仅展示特定数据中心(如AWS-East)

如果只需要渲染指定数据中心的内容,先用find筛选目标项:

const targetDC = cloudData.find(item => item.dataCenter === 'AWS-East');

if (targetDC) {
  return (
    <div>
      <div>{targetDC.dataCenter.replace('-', ' ')}</div>
      {targetDC.availablechannels.map(channel => (
        <div key={channel.id}>{channel.channelName}</div>
      ))}
    </div>
  );
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:50:16