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

如何在React中渲染包含随机键值的对象数组?

React随机键对象数组渲染解决方案

你遇到的问题本质是每个对象的键是随机生成的,没法通过固定的属性名直接访问对应的值,所以用map的时候得先把每个对象的键和值提取出来。

基础实现(每个对象仅一个键值对)

假设数组里每个对象只有一组键值对,直接提取键和值即可:

function YourComponent() {
  const arr = [
    { 789: 'hello world' },
    { 101: 'foo bar' }
  ];

  return (
    <div>
      {arr.map((obj, idx) => {
        // 获取当前对象的唯一键
        const [key] = Object.keys(obj);
        // 通过键拿到对应的值
        const value = obj[key];
        // 渲染目标标签,key用idx兜底,最好用key本身(如果键唯一)
        return <p key={key || idx}>{key} is: {value}</p>;
      })}
    </div>
  );
}

兼容多键值对的情况

如果数组里的对象可能包含多个随机键值对,就嵌套一层遍历处理:

function YourComponent() {
  const arr = [
    { 123: 'aaa', 456: 'bbb' },
    { 789: 'ccc' }
  ];

  return (
    <div>
      {arr.map((obj, arrIdx) => (
        <div key={arrIdx}>
          {/* 遍历对象的所有键值对 */}
          {Object.entries(obj).map(([key, value], entryIdx) => (
            <p key={`${arrIdx}-${entryIdx}`}>{key} is: {value}</p>
          ))}
        </div>
      ))}
    </div>
  );
}

注意点

  • map方法必须给每个子元素加唯一的key属性,避免React警告;如果随机键本身是唯一的,优先用它当key,比index更稳定。
  • Object.keys()用于获取对象的所有键,Object.entries()直接获取键值对数组,两种方式都能解决你的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 08:35:18