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

React中如何获取嵌套对象的动态第一层键对应的数据?

解决方案

核心思路:无需硬编码users下的键名,通过Object.values()提取users对象下的所有属性值,即可适配动态键名的场景。

场景1:users下始终仅包含1个用户对象(和示例结构一致)

直接提取第一个用户对象即可,修改后的代码如下:

const [subparameters, setSubParameters] = React.useState(null);

// 先做非空判断,避免接口返回异常时报错
if (r?.data?.users && Object.keys(r.data.users).length > 0) {
  // 提取users下第一个用户的对象,无需关注具体键名
  const targetUser = Object.values(r.data.users)[0];
  const params = [];
  for (const [key, value] of Object.entries(targetUser)){
    const _parm = {parKey: key, parValue: value };
    console.log(_parm);
    params.push(_parm);
  }
  // 循环结束后统一更新state,避免多次触发不必要的重渲染
  setSubParameters(params)
}

场景2:users下可能包含多个动态键名的用户

如果需要遍历所有用户的所有属性,嵌套遍历即可:

const [subparameters, setSubParameters] = React.useState(null);

if (r?.data?.users) {
  const params = [];
  // 外层遍历所有用户对象
  for (const user of Object.values(r.data.users)) {
    // 内层遍历单个用户的所有属性
    for (const [key, value] of Object.entries(user)) {
      params.push({parKey: key, parValue: value });
    }
  }
  setSubParameters(params)
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:54:03