我正在研究一个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
。
答案 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
的名称。