Javascript 如何使用数字键访问嵌套对象?

Javascript 如何使用数字键访问嵌套对象?,javascript,arrays,reactjs,object,axios,Javascript,Arrays,Reactjs,Object,Axios,我正在开发一个API,它由带有数字键的嵌套对象组成。以下是数据: { "data": {"0":{"name":"kp"},"1":{"name":"josan"}} 我想知道一个键怎么可能是数字的。据我所知,这是不可能的 axios.get(``) .then( res => {const persons = res.data; this.setState({persons}); render(){return ({this.state.persons.data."1".n

我正在开发一个API,它由带有数字键的嵌套对象组成。以下是数据:

{ "data": {"0":{"name":"kp"},"1":{"name":"josan"}}
我想知道一个键怎么可能是数字的。据我所知,这是不可能的

axios.get(``)
.then( res => {const persons = res.data;
    this.setState({persons});

 render(){return ({this.state.persons.data."1".name})

我想访问
1
name
,使用括号表示法如下:

this.state.persons.data["1"].name
通常不能使用数字,因为所有JavaScript对象键都是字符串——如果您尝试在点表示法中使用数字,则会出现语法错误:

constobj={1:“foo”};

控制台日志(obj..1)您可以使用
[]
(括号)表示法

var a={“data”:{“0”:{“name”:“kp”},“1”:{“name”:“josan”}
console.log(a.data[0].name)
console.log(a.data[1].name)
如果
{“data”:{“0”:{“name”:“kp”},“1”:{“name”:“josan”}}
是来自API的响应,您已经在这样做了:
const persons=res.data;


然后要获取名称,需要使用
this.state.persons['1'].name

类型错误:无法读取未定义类型的属性“0”错误:无法读取未定义类型的属性“1”在代码段中正常工作获取相同的错误类型错误:无法读取未定义类型的属性“1”…何处?我发布的解决方案有效-确保正确复制它。这意味着
this.state.persons.data
未定义。请确保它已定义,否则代码将无法工作。Jack,我们在获取响应时使用了一个默认的“data”术语,即res.data,我有一个与“data”同名的键。因此,in基本上试图访问的是这个.state.res.data.data[“1”]名称P.S:我已经将res.data分配给了人员。我的意思是,他们能够区分两个“数据”。我很难理解这一点。