簡體   English   中英

我無法使用HTML(innerHTML)中的Javascript顯示排序后的數組

[英]I can't display my sorted array with Javascript in HTML (innerHTML)

我對整數數組進行了排序,並嘗試用HTML顯示它,但我不知道該怎么做。

我已經嘗試在不使用功能顯示的情況下打印元素

 var array = [4, 2, 8, 3, 5]; for (var i = 0; i < array.length; i++) { for (var j = i + 1; j < array.length; j++) { if (array[i] > array[j]) { var temp = array[i]; array[i] = array[j]; array[j] = temp; } } } function display(array) { for (var i = 0; i < array.length; i++) { console.log(array[i]); document.getElementById("visualization").innerHTML = array; } } window.document.getElementById("visualization").innerHTML = display(array); 
 <p id="visualization"></p> 

預期結果:2,3,4,5,8實際結果:未定義

當我使用Chrome控制台時,一切正常! 排序代碼沒有錯。

這里的問題是display函數的執行不返回任何內容,因此它隱式返回undefined並且您正在將此結果( undefined )設置到該元素的innerHTML中。 一種可能的解決方案是從display函數返回字符串,或者准備該函數內部所有值的字符串,將innerHTML設置為該字符串,不返回任何內容,然后僅調用display函數(下面是一個示例)

您需要為innerHTML創建字符串

 var array = [4, 2, 8, 3, 5]; array.sort((a,b) => a < b ? -1 : (a == b ? 0 : 1)); function display(array){ var html = ""; for(var i=0; i<array.length; i++){ console.log(array[i]); html += `<p>${array[i]} </p>`; } document.getElementById("visualization").innerHTML = html; } display(array) 
 <html> <head> </head> <body> <p id="visualization"></p> </body> </html> 

我簡化了您的代碼,

看一下jsFiddle,

您可以只使用數組排序方法,

您正在嘗試使用innerHTML一個沒有返回值的函數。 而是嘗試返回一個字符串,或者使用字符串連接方法

  var array = [4, 2, 8, 3, 5]; array.sort() document.getElementById("visualization").innerHTML = array.join(",") 
 <html> <head> </head> <body> <p id="visualization"></p> </body> </html> 

https://jsfiddle.net/mje21Lwv/

  var array = [4, 2, 8, 3, 5];

  array.sort()

  document.getElementById("visualization").innerHTML = array.join(",")

暫無
暫無

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

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