繁体   English   中英

javascript 在包含另一个数组的数组 object 上循环

[英]javascript loop on a array object that contain another array

我有一个数组 object 包含一个数组,我想在此数组 object 上循环以从中获取所有信息以及此数组 object 中的数组的所有信息

 const database = [ { sectorName: "قطاع السياحة", sectorCode: "t102", sectorIcon: "fas fa-suitcase", sectorN: "tourism", info: ["ترخيص عقاري", "الارشاد السياحي", "تنظيم الرحلات السياحية", "حجز وحدات الايواء", "الايواء السياحي"], desc: "شرح تفصيلي", }, { sectorName: "قطاع الصناعة", sectorCode: "K503", sectorIcon: "fas fa-map-marked-alt", sectorN: "industry", info: [], desc: "شرح تفصيلي", }, { sectorName: "قطاع الزراعة", sectorCode: "B201", sectorIcon: "fas fa-suitcase", sectorN: "agriculture", info: [], desc: "شرح تفصيلي", }, { sectorName: "قطاع التجارة", sectorCode: "m907", sectorIcon: "fas fa-map-marked-alt", sectorN: "trading", info: [], desc: "شرح تفصيلي", }, { sectorName: "قطاع النقل", sectorCode: "P001", sectorIcon: "fas fa-suitcase", sectorN: "transport", info: [], desc: "شرح تفصيلي", }, ]; function getInfo() { let href = document.location.href; let id = href.split('=')[1]; console.log(id); for (let i = 0; i < database.length; i++) { if (database[i].sectorCode === id) { selectElement('.title').innerHTML += `${database[i].sectorName}`; selectElement(".left").innerHTML += ` <div class="box"> <div class="inner-box"> <div class="title"><a href="steps.html?id=${database[i].sectorCode}">${database[i].info[i]}</a></div> <div class="desc">${database[i].desc}</div> </div> <a href="steps.html?id=${database[i].tId}" class="btn">اختار</a> </div> `; } } }

使用我的代码,我无法访问 info 数组中的所有信息,我想访问所有信息以及 info 数组中的信息,并在 div 中打印它们,我该怎么做?

您可以使用array.join从数组创建字符串。 array.join(",")在数组元素之间插入逗号。

如果您想做一些更复杂的事情,我建议您对info字段使用第二个 for 循环。

例子:

 const database = [ { sectorName: "قطاع السياحة", sectorCode: "t102", sectorIcon: "fas fa-suitcase", sectorN: "tourism", info: ["ترخيص عقاري", "الارشاد السياحي", "تنظيم الرحلات السياحية", "حجز وحدات الايواء", "الايواء السياحي"], desc: "شرح تفصيلي", }, { sectorName: "قطاع الصناعة", sectorCode: "K503", sectorIcon: "fas fa-map-marked-alt", sectorN: "industry", info: [], desc: "شرح تفصيلي", }, { sectorName: "قطاع الزراعة", sectorCode: "B201", sectorIcon: "fas fa-suitcase", sectorN: "agriculture", info: [], desc: "شرح تفصيلي", }, { sectorName: "قطاع التجارة", sectorCode: "m907", sectorIcon: "fas fa-map-marked-alt", sectorN: "trading", info: [], desc: "شرح تفصيلي", }, { sectorName: "قطاع النقل", sectorCode: "P001", sectorIcon: "fas fa-suitcase", sectorN: "transport", info: [], desc: "شرح تفصيلي", }, ]; function getInfo() { let href = document.location.href; let id = href.split('=')[1]; console.log(id); for (let i = 0; i < database.length; i++) { if (database[i].sectorCode === id) { selectElement('.title').innerHTML += `${database[i].sectorName}`; selectElement(".left").innerHTML += ` <div class="box"> <div class="inner-box"> <div class="title"><a href="steps.html?id=${database[i].sectorCode}">${database[i].info.map(curr => `<div>${curr}</div>`)}</a></div> <div class="desc">${database[i].desc}</div> </div> <a href="steps.html?id=${database[i].tId}" class="btn">اختار</a> </div> `; } } }

您可以使用mapjoin来实现它:

`<div class="info">${database[i].info.map((inf) => '<div>' + inf + '</div>').join("")}</div>`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM