Кодовая ручка очень помогла! Я упоминал, глядя на вывод консоли в одной точке. Это очень важно, потому что он говорит вам, что пошло не так, , поэтому убедитесь, что вы знаете, как это увидеть . В коде ручки он также находится слева внизу, а в JS есть красный восклицательный знак, показывающий, что присутствует ошибка. Когда я нажимаю кнопку Metri c, я вижу:
TypeError: obj.height is null
Это потому, что некоторые из ваших данных имеют значение null для ширины или высоты вместо ожидаемого значения, поэтому он «падает» и просто останавливается в любой строке, вызвавшей проблему. Вот почему некоторые строки исчезли.
Я вижу два исправления:
- Исправьте ваши данные так, чтобы значения не имели нулевых значений
- Сделайте код более надежный, поэтому он не обрабатывает sh на недопустимых данных (это всегда предпочтительнее для любой программы).
Для второго варианта вы можете исправить код следующим образом:
function MetricValues() {
var tab = document.querySelector("table");
tab.innerHTML = "";
for (var obj of death_row) {
var height = obj.height || "0' 0\"";
var row = `<tr><td>${obj.first_name}</td>
<td>${obj.last_name}</td>
<td>${obj.age_at_execution}</td>
<td>${((obj.weight)/2.2046).toFixed(1)}</td>
<td>${(((Number(height[0])*12*2.54) + (Number(height[3])*2.54))/100).toFixed(2)}</td></tr>`;
tab.innerHTML += row;
}
};
Использование временной переменной var height = obj.height || "0' 0\"";
, которая по умолчанию 0 '0 " исправляет cra sh. Кстати, вам определенно следует прочитать о функциях .