Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays_Reactjs - Fatal编程技术网

如何访问数组中的嵌套元素(javascript)

如何访问数组中的嵌套元素(javascript),javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我有这样一个数组: console.log(this.props.countrysideTypes) [{…}] 0: field: Array(8) 0: "Wood" 1: "Grain" 2: "Grain" 3: "Grain" 4: "Stone" 5: "Iron" 6: "Grain" 7: "Grain" length

我有这样一个数组:

console.log(this.props.countrysideTypes) 

[{…}]
0:
field: Array(8)
0: "Wood"
1: "Grain"
2: "Grain"
3: "Grain"
4: "Stone"
5: "Iron"
6: "Grain"
7: "Grain"
length: 8
__proto__: Array(0)
id: "-MHLWLm8bFRE2_1aahWk"
userId: "lPqZ8Oj90Se2qBEIzTJq1OSfbo62"
__proto__: Object
length: 1
__proto__: Array(0)
现在我想接触到例如第一项“木材”

我试过了

console.log(this.props.countrysideTypes[0])
这给了我:

{field: Array(8), userId: "lPqZ8Oj90Se2qBEIzTJq1OSfbo62", id: "-MHLWLm8bFRE2_1aahWk"}
field: Array(8)
0: "Wood"
1: "Grain"
2: "Grain"
3: "Grain"
4: "Stone"
5: "Iron"
6: "Grain"
7: "Grain"
length: 8
__proto__: Array(0)
id: "-MHLWLm8bFRE2_1aahWk"
userId: "lPqZ8Oj90Se2qBEIzTJq1OSfbo62"
__proto__: Object
但是我不能得到更深层次的嵌套项。我试过了

console.log(this.props.countrysideTypes[0].field)//TypeError:无法读取未定义的属性“field” console.log(this.props.countrysideTypes[0][0])//TypeError:无法读取未定义的属性“field” console.log(this.props.countrysideTypes[0]。字段[0])///TypeError:无法读取未定义的属性“field” console.log(this.props.countrysideTypes.field)//未定义的

console.log(this.props.countrysideTypes[0].field[0]) 

您有一个包含对象的数组。在您想要访问的对象中,数组被分配到属性字段。

感谢您的帮助!数据来自firebase实时数据库。看起来它只是嵌套得太深了。 最后它是这样工作的:

    let objectArray = Object.entries(this.props.countrysideTypes);

    let types = [];

    objectArray.forEach(([key, value]) => {
        types = value.field;
      });

    console.log(types[0]); //"Wood"

是的,我也这么认为,但事实并非如此。这给了我:无法读取未定义的属性“field”这是访问数组中嵌套对象、检查键入错误和记录道具的方法,以检查您是否接收到所有要访问的内容,前两次尝试产生的输出与您描述的相同,后两次尝试工作正常(打开浏览器的实际JS控制台)。如果您的数据表现不同,一个重要的细节是:它来自哪里?