被要求定義一個函數,它需要一個HTML表格,其中包含一個人的年齡和體重,並返回給定年齡範圍內人的所有體重的模式。該函數應該適用於任何長度的表格。根據某個人的年齡過濾行,然後轉換數組中所有符合條件的行(即,提取過濾的權重列),最好的方法是什麼?我想要做以下事情,但我意識到我不能使用方括號表示法引用HTML表格。 JavaScript中的HTML表格有什麼可比性?我有興趣學習如何在Javascript中使用HTML表格的最佳方式,這個問題的細節並不重要。表格和Javascript:哪些格式最好?我如何從表中提取數組?
function birthWeightByAge(ageWeightTbl, rowCount, minVal, maxVal) {
var weightArray = [];
//Traverse table by row
for (var i =0; i < rowCount; i++) {
//Determine age and weight for this row. Can I use this approach with different syntax? Do I need to use a completely different approach?
var age = ageWeightTbl[i][0];
var weight = ageWeightTbl[i][1];
//Check if the baby weight in this row meets the requirements
if (weight > minVal && weight < maxVal) {
//If it does, add the age and weight to our holding arrays
ageArray.push(age);
weightArray.push(weight);
}
}
var weightMode = mode(weightArray);
}
邊問:是否有將呈現一個HTML頁面上的數據格式,但很容易在Javascript一起工作呢?如果是,請提供關於其好處及其工作原理的高級概述。
我添加了一個示例表的要求:
//Helper function that creates a mock table for testing
function generate_table(rows) {
// get the reference for the body
var body = document.getElementsByTagName("body")[0];
// creates a <table> element and a <tbody> element
var tbl = document.createElement("table");
var tblBody = document.createElement("tbody");
// creating all cells
for (var i = 0; i < rows; i++) {
// creates a table row
var row = document.createElement("tr");
for (var j = 0; j < 2; j++) {
// Create a <td> element and a text node, make the text
// node the contents of the <td>, and put the <td> at
// the end of the table row
var cell = document.createElement("td");
if (j<1) {
var cellText = document.createTextNode(""+Math.round(100*Math.random())+"");
}
else {
var cellText = document.createTextNode(""+Math.round(10*Math.random())+"");
}
cell.appendChild(cellText);
row.appendChild(cell);
}
// add the row to the end of the table body
tblBody.appendChild(row);
}
// put the <tbody> in the <table>
tbl.appendChild(tblBody);
// appends <table> into <body>
body.appendChild(tbl);
// sets the border attribute of tbl to 2;
tbl.setAttribute("border", "2");
}
//Sample Output: {"Mode": 9}
如果你定義一個模擬表集合,該函數將採取什麼以及你期望從該函數返回什麼,這將是有幫助的。 –
我已經添加了示例表和示例輸出的代碼。 –