JavaScript中如何访问API返回对象内键名为"0"的属性?
JavaScript访问键名为数字的对象属性
在JavaScript中,当对象的键是数字(或数字形式的字符串)时,不能使用点语法(.)直接访问,必须改用方括号语法([])。
针对你的场景,要访问response.body中键为0的子对象里的setup和punchline,可以这么修改代码:
fetch('https://dad-jokes.p.rapidapi.com/random/joke', options) .then(response => response.json()) .then(data => { // 用方括号访问数字键对应的子对象 const jokeContent = data.body[0]; // 拼接笑话的铺垫和包袱 const fullJoke = `${jokeContent.setup}\n${jokeContent.punchline}`; // 将内容插入页面元素 document.getElementById("joke").innerText = fullJoke; console.log(data); }) .catch(err => console.error(err));
额外说明
- 方括号里既可以直接写数字
0,也可以写字符串形式的"0"(比如data.body["0"].setup),两种写法效果完全一致——因为JavaScript对象的键本质都是字符串,数字会被自动转换为字符串处理。 - 把第二个
then的参数名从response改为data,是为了避免和第一个then里的响应对象重名,提升代码可读性。
内容的提问来源于stack exchange,提问作者help
相关产品推荐
相关产品推荐

