簡體   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