Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 似乎无法访问数组中的对象属性_Javascript_Reactjs - Fatal编程技术网

Javascript 似乎无法访问数组中的对象属性

Javascript 似乎无法访问数组中的对象属性,javascript,reactjs,Javascript,Reactjs,控制台输出: { 295798: { 方框类型:“QB”, 颜色:“什锦”, 允许楼层:2100, 等级:假, 头大小:空, _特别:“0”, 长度:false, 现场发明:“1”, } } 我在chrome控制台的屏幕截图中显示了一个数组。当我打印出数组时,它就会出现 console.log(props.thisData); console.log(props.thisData[0].color); 道具。此数据显示整个阵列。但是,当我尝试访问颜色时,会出现以下错误: Product.js

控制台输出:

{
295798: {
方框类型:“QB”,
颜色:“什锦”,
允许楼层:2100,
等级:假,
头大小:空,
_特别:“0”,
长度:false,
现场发明:“1”,
}
}
我在chrome控制台的屏幕截图中显示了一个数组。当我打印出数组时,它就会出现

console.log(props.thisData);
console.log(props.thisData[0].color);
道具。此数据显示整个阵列。但是,当我尝试访问颜色时,会出现以下错误:


Product.jsx:56未捕获类型错误:无法读取未定义的属性“color”

控制台输出中的数据结构不是
数组。它是一个
对象
,以数字作为键。似乎没有键为
0
的元素(对象中没有属性
0
)。因此,您将得到未定义的

要访问颜色属性,必须通过对象上的键进行访问:

props.thisData['295798'].color
更新

我建议您将对象转换为数组,并将键作为id添加到每个元素中(如果您想使用数组)

const dataArray = Object
  .keys(props.thisData)
  .map(key => ({ id: key, ...props.thisData[key] }))

你知道我怎样才能得到这些信息吗?每个产品的数字都不一样,所以我怎样才能用一个变量来代替数字本身呢?props.thisData[ID_HERE].color/@mcjanty32只需将其转换为更新中的数组即可