如何从嵌套数组中提取price_change字段,现有访问写法报错如何解决
问题原因
你的代码存在JavaScript对象属性访问的语法错误:response.data[0].["1d"]中混用了点语法和方括号语法,.[ 属于非法写法。
解决方法
JS中访问不符合标识符命名规范的属性(比如以数字开头、包含特殊字符的属性名),直接使用方括号语法即可,不需要额外加 . 修饰,将你的属性取值写法修改为:
response.data[0]["1d"].price_change
修改后的完整代码
var stockDiff = document.getElementById("stockDiffCrypto"); var thePrice = response.data[0]["1d"].price_change; if (thePrice > 0) { stockDiff.innerHTML = `<i class='fas fa-angle-double-up'></i>` stockDiff.style.color = "green" } else { stockDiff.innerHTML = `<i class='fas fa-angle-double-down'></i>` stockDiff.style.color = "red" }
补充说明
- JavaScript访问对象属性有两种合法写法:
- 点语法:仅适用于属性名符合标识符命名规范的场景(属性名不能以数字开头,不能包含空格、特殊符号,不能是JS保留关键字)
- 方括号语法:适用于所有属性名场景,属性名需要以字符串形式写在方括号内,直接跟在要访问的对象后,不需要加点
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

