У меня есть задание, в котором, если я передаю массив 0 в функцию, мне нужно добавить только одну строку в существующую таблицу. Однако, когда я запускаю свой код через проверку присваивания, он постоянно говорит, что я делаю две строки. В результате я продолжаю проваливать юнит-тест.
В назначении также отмечается, что я не могу использовать insertCell и / или insertRow, так как это вызывает проблему с автогрейдером.
Мой подход к этой проблеме заключается в том, что если сумма массива равна 0, получить существующую таблицу с идентификатором distributionTable
и добавить к ней одну строку. Я использовал инструмент проверки браузера для отладки, чтобы убедиться, что в HTML присутствует одна строка.
Ниже приведена функция, которую я создал в JavaScript:
function setTableContent(userInput) {
let gradeArray = parseScores(userInput);
let distArray = buildDistributionArray(gradeArray);
let sum = 0
for (let i = 0; i < distArray.length; i++) {
sum = sum + distArray[i];
}
if (sum <= 0) {
var table = document.getElementById("distributionTable")
row = table.appendChild(document.createElement("tr"));
}
}
Ниже приведена HTML-страница, которая будет изменена из JavaScript:
<!DOCTYPE html>
<html>
<head>
<style>
.bar0 { vertical-align: bottom; background-color: #00C000; }
.bar1 { vertical‐align: bottom; background-color: #309000; }
.bar2 { vertical‐align: bottom; background-color: #606000; }
.bar3 { vertical‐align: bottom; background-color: #903000; }
.bar4 { vertical‐align: bottom; background-color: #C00000; }
td { vertical-align: bottom }
</style>
<script src="index.js"></script>
</head>
<body onload="bodyLoaded()">
<table style="border: 2px solid black" id="distributionTable">
</table>
</body>
</html>
Ниже приведенаЭлементы HTML в моем браузере после запуска кода:
Вот вывод из модульного теста:
Пожалуйстадайте мне знать, если у вас есть какие-либо вопросы или предложения. Спасибо!