javascript - 无法在 API JSON 中获得成绩
问题描述
我有 API 的数据结果:
"tabledata": [
{
"itemname": {
"class": "level1 levelodd oddd1 b1b b1t column-itemname",
"colspan": 7,
"content": "<i class=\"icon fa fa-folder fa-fw icon itemicon\" title=\"Category\" aria-label=\"Category\"></i>Intro to Computing IT1016",
"celltype": "th",
"id": "cat_2_23"
},
},
{
"itemname": {
"class": "level2 leveleven item b1b column-itemname",
"colspan": 1,
"content": "<a title=\"Link to Quiz activity Exercise 2.1\" class=\"gradeitemheader\" ><img class=\"icon itemicon\" alt=\"Quiz\" />Exercise 2.1</a>",
"celltype": "th",
"id": "row_94_23"
},
"grade": {
"class": "level2 leveleven item b1b itemcenter column-grade",
"content": "10.00",
"headers": "cat_2_23 row_94_23 grade"
},
},
]
我可以得到 itemname.content 但grade.content 不能。
如何编码获取grade.content 和子字符串itemname.content?
我编写 javascript 代码并做出反应
解决方案
由于尚不清楚您正在做什么来访问这些字段,因此我假设您只是尝试映射数据并在元素没有该grade
属性时遇到空/未定义的访问错误。当您遍历数组时,您可以使用可选链接运算符来防止意外的空/未定义访问。
el.itemname?.content
el.grade?.content
可选链
可选的链接运算符 (
?.
) 使您能够读取位于连接对象链深处的属性值,而无需检查链中的每个引用是否有效。
?.
运算符类似于链接运算符,不同之处在于如果引用为空(或 ).
不会导致错误,表达式会短路并返回未定义的值。与函数调用一起使用时,如果给定函数不存在,则返回。null
undefined
undefined
const tabledata = [
{
"itemname": {
"class": "level1 levelodd oddd1 b1b b1t column-itemname",
"colspan": 7,
"content": "<i class=\"icon fa fa-folder fa-fw icon itemicon\" title=\"Category\" aria-label=\"Category\"></i>Intro to Computing IT1016",
"celltype": "th",
"id": "cat_2_23"
},
},
{
"itemname": {
"class": "level2 leveleven item b1b column-itemname",
"colspan": 1,
"content": "<a title=\"Link to Quiz activity Exercise 2.1\" class=\"gradeitemheader\" ><img class=\"icon itemicon\" alt=\"Quiz\" />Exercise 2.1</a>",
"celltype": "th",
"id": "row_94_23"
},
"grade": {
"class": "level2 leveleven item b1b itemcenter column-grade",
"content": "10.00",
"headers": "cat_2_23 row_94_23 grade"
},
},
];
tabledata.forEach(el => {
console.log("item:", el.itemname?.content);
console.log("grade:", el.grade?.content);
});
推荐阅读
- c - 如何使用 Printf 根据列对齐我的最后一列
- c++ - 在 C++ 中从 .csv 读取文件
- kotlin - 在 ktor 服务器中全局处理 http 异常是个好主意吗?
- javascript - Linebreak 不会被解释为 Node JS 中的换行符
- openvino - 无法从官方下载链接下载最新版本的openvino
- vue.js - 强制 Nuxt 运行脚本标签
- javascript - 在非 React 组件中使用钩子的替代方法是什么?
- python - 检查元组中的每个元素是否都是相同的类型
- android - 如何更改最近应用程序菜单中应用程序标题栏的颜色?
- qr-code - 为什么当我使用 QR Scanner 应用程序扫描 QR 码时,生成的 QR 看起来与打印的 QR 码不同?