如何提取对象内labels数组中的对象?
解决方法
你的问题在于labels是数组类型,不是单个对象,所以不能直接通过user.labels.id访问属性,必须遍历这个数组来处理每个label对象。
修改后的代码示例
// 假设test是从API获取的issues数组 const html = test.map((issue) => { // 遍历labels数组,生成每个标签的HTML const labelsContent = issue.labels.map((label) => ` <span class="label-item"> 标签ID: ${label.id},标签名: ${label.name} </span> `).join(''); // 将数组转为字符串,避免HTML中出现逗号 return ` <div class="issue"> <p>Issue ID: ${issue.id}</p> <div class="labels">${labelsContent}</div> </div> `; }).join(''); // 合并所有issue的HTML片段 document.querySelector("#app").insertAdjacentHTML("afterbegin", html);
关键说明
- 用
issue.labels.map()遍历每个label对象,按需提取id、name、color等属性 - 两次调用
.join(''):第一次把每个label的HTML数组转成字符串,第二次把所有issue的HTML数组转成完整的HTML字符串,避免插入时出现多余逗号 - 如果你只需要提取labels数组的原始数据(不需要渲染),可以直接用
issue.labels获取,或者通过map筛选字段:// 提取所有label的id和name组成新数组 const extractedLabels = test.map(issue => issue.labels.map(label => ({ id: label.id, name: label.name })) );
内容的提问来源于stack exchange,提问作者Univel
相关产品推荐
相关产品推荐

