![](/img/trans.png)
[英]I can't set C source code into html using 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.