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

时间:2019-08-07 09:59:49

标签: javascript arrays reactjs object axios

我正在研究一个API,该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})

我要访问name中的1

3 个答案:

答案 0 :(得分:2)

使用方括号表示法,如下所示:

this.state.persons.data["1"].name

通常不能使用数字,因为所有JavaScript对象键都是字符串-如果尝试以点表示法使用数字,则会出现语法错误:

const obj = { 1: "foo" };

console.log(obj..1);

但是,由于存在隐式转换的怪癖,括号表示法中的数字可以正常工作:

const obj = { 1: "foo" };

console.log(obj[1]);

答案 1 :(得分:0)

您可以使用[](括号)符号

var a={ "data": {"0":{"name":"kp"},"1":{"name":"josan"}}}
console.log(a.data[0].name)
console.log(a.data[1].name)

答案 2 :(得分:0)

如果{ "data": {"0":{"name":"kp"},"1":{"name":"josan"}}是来自API的响应,并且您已经在执行此操作:const persons = res.data;

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