簡體   English   中英

從二維數組的“循環”返回值

[英]Return value from “loop” for two dimensional array

我有一個陣列。

 var citycode = [ ["In Milan", 0], ["Rom", 5], ["Modena", 6], ["Others", 20] ]; 

如何從For循環中為此Array返回值:

<div class="loop"><span>In Milan</span><span>0</span> </div>
<div class="loop"><span>Rom</span><span>5</span> </div>
....

非常感謝你。

使用函數式編程,無需循環。

 var cityCode = [ ["In Milan", 0], ["Rom", 5], ["Modena", 6], ["Others", 20] ]; const result = cityCode.map(code => `<div class="loop"><span>${code[0]}</span><span>${code[1]}</span></div>` ).join('') document.body.innerHTML = result; console.log(result); 

 var citycode = [ ["In Milan", 0], ["Rom", 5], ["Modena", 6], ["Others", 20] ]; for (var i = 0; i < citycode.length; i++) { for (var o = 0; o < citycode[i].length; o++) { console.log(citycode[i][o]) } } 

使用2 for循環來獲取每個項目

您可以創建DOM元素並追加body

 var citycode = [["In Milan", 0], ["Rom", 5], ["Modena", 6], ["Others", 20]]; citycode.forEach(function (city) { var div = document.createElement('div'); city.forEach(function (a) { var span = document.createElement('span'); span.appendChild(document.createTextNode(a)); this.appendChild(span); }, div); this.appendChild(div); }, document.body); 

不要迂腐,但OP要求循環..

    var htmlContent = "";
            for (var i = 0; citycode.length > i; i++) {
              htmlContent += '<div class="loop"><span>' + citycode[i][0] + '</span><span>' + citycode[i][1] + '</span></div>'
    }

我猜Array.prototype.reduce()是這些工作的理想選擇。 您可以按照以下方式執行功能;

基本上你不應該在DOM上工作,而是在文檔片段上工作,一旦完成你的工作,就可以將文檔片段一次性地附加到DOM的正確位置。

 var citycode = [["In Milan ", 0], ["Rom ", 5], ["Modena ", 6], ["Others ", 20]], mainDiv = document.getElementById("main"); mainDiv.appendChild(citycode.reduce(function(p,c){ var d = document.createElement("div"); d.classList.add("loop"); c.reduce(function(dv,sp){ var s = document.createElement("span"); s.textContent = sp; dv.appendChild(s); return dv; },d); p.appendChild(d); return p; },document.createDocumentFragment())); 
 .loop {color: red} 
 <div id="main"></div> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM