我正在撰寫一段代碼,以基本上呼叫給定資料集中的頂級賺錢者和前五名賺錢者。在撰寫代碼時,我意識到有幾個地方我正在重寫代碼,基本上是復制和粘貼。雖然這可行,但我想拋出代碼的重復部分并從函式中呼叫它。但是,這是行不通的,我也不知道為什么。這是重復的代碼:
for (let i = 0; i < len; i ) {
html =
'<li >'
'<h2>'
topSalaries[i][8]
'</h2>'
'<h3>'
topSalaries[i][11]
'</h3>';
}
container.innerHTML = '<ul id = "topSalaries">' html '</ul>';
這是我要呼叫的函式。但是,當我呼叫它時,它沒有按預期作業,資訊顯示在網頁上。我正在使用 VS Code 并在實時服務器上運行它,所以當我保存時,網頁會自動更新。
function createHtmlElements(len, html) {
for (i = 0; i < len; i ) {
html =
'<li >'
'<h2>'
topFiveSalaries[i][8]
'</h2>'
'<h3>'
topFiveSalaries[i][11]
'</h3>'
'</li>';
}
return html
}
function getTopSalaries(boston, container) {
const people = boston.data;
const len = 5; // only want top five
let topFiveSalaries = sortPeople(people).slice(0,len);
// create the list elements
html = createHtmlElements(len, html);
container.innerHTML = '<ul id = topSalaries">' html '</ul>';
}
uj5u.com熱心網友回復:
一方面 topFiveSalaries 將在您創建的函式 createHtmlElements 中未定義,您必須將其傳遞給函式
uj5u.com熱心網友回復:
好的。所以,感謝戴夫的幫助。看起來我也遺漏了一部分,因為我還需要將陣列傳遞給函式。這就是我寫的以及我如何稱呼它。
function getTopSalaries(boston, container) {
const people = boston.data;
const len = 5; // only want top five
var topFiveSalaries = sortPeople(people).slice(0,len);
let html = '';
// create the list elements
html = createHtmlElements(len, html, topFiveSalaries);
container.innerHTML = '<ul id = topSalaries">' html '</ul>';
}
function getTopEarner(boston, container){
const people = boston.data;
const len = 1;
let highEarner = sortPeople(people).slice(0,len);
var html = '';
// create the list elements
createHtmlElements(len, html, highEarner);
container.innerHTML = '<ul id = topSalaries">' html '</ul>';
}
// sort people by income in descending order
function sortPeople(people) {
people.sort(function(a, b) {
return b[11] - a[11];
})
return people
}
function createHtmlElements(len, html, array) {
for (i = 0; i < len; i ) {
html =
'<li >'
'<h2>'
array[i][8]
'</h2>'
'<h3>'
array[i][11]
'</h3>'
'</li>';
}
return html
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/488510.html
標籤:javascript
下一篇:無法在js中宣告top
