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

React Native遍历未知Key对象提取RGB字段生成二维数组

问题原因

你的代码有三处错误导致拿不到全量数据:

  • data(即object.paints)是键名动态的普通对象,不是数组,直接调用map方法本身就不符合语法逻辑
  • 索引逻辑写反:遍历过程中你拿到的单个元素本身就是车漆条目,不需要再用遍历索引id去二次取子属性
  • 字段路径错误:primarySprayCanRGB和primarySprayCanHighLightRGB是直接挂在每个车漆对象根下的属性,不存在primarySprayCan这层嵌套
修复后代码

直接用Object.values把动态键对象的值转成可遍历数组,再提取目标字段即可,不需要额外做索引判断:

{!loadinga && (() => {
  // 提取所有车漆条目组成数组
  const paintEntries = Object.values(data)
  // 遍历生成目标二维数组
  const colorList = paintEntries.map(paint => [
    paint.primarySprayCanRGB,
    paint.primarySprayCanHighLightRGB
  ])

  // 后续可以直接使用colorList做渲染或逻辑处理
  console.log('目标二维数组:', colorList)
  // 不需要渲染内容就返回null,要渲染列表直接遍历colorList即可
  return null
})()}

如果要精简逻辑,可以直接在组件逻辑层提前预处理好数组,不要把计算逻辑堆在JSX渲染块里:

const colorList = !loadinga 
  ? Object.values(data).map(item => [item.primarySprayCanRGB, item.primarySprayCanHighLightRGB])
  : []

提示:尽量在渲染前完成数据转换,避免渲染阶段重复执行计算逻辑拖慢性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:36:29