Не работает функция проверки html таблицы на уникальность

Рейтинг: 0Ответов: 1Опубликовано: 08.03.2023

Необходимо написать функцию, которая выводит true, если значения value нет в таблице. Если же в таблице уже имеется значение, равное value, то функция возвращает false.

function search(value, num_tab){  //num_tab - номер столбца
    table=document.getElementById("converter-table");
    for (i=1; i<table.rows.length; i++){
        if (Number(table.rows[i].cells[num_tab].value)==value){
              return false;
        } 
    }
    return true;
}

Id таблицы в html-"converter-table". Функция всегда возвращает true. В чём может быть ошибка?

Ответы

▲ 0Принят
  1. Проверяем наличие таблицы и выбрасываем ошибку, если она не существует.
    2. Проверяем индекс столбца и выбрасываем ошибку, если он некорректный.
    3. Получаем значение ячейки с помощью textContent вместо value.
    4. Используем строгое сравнение ===.
    5. Добавляем обработку ошибок.
function search(value, num_tab) {
var table = document.getElementById("converter-table");
if (!table) {
    throw new Error("Table not found");
}
for (var i = 1; i < table.rows.length; i++) {
    var row = table.rows[i];
    if (num_tab >= row.cells.length) {
        throw new Error("Invalid column index");
    }
    var cell_value = Number(row.cells[num_tab].textContent);
    if (cell_value === value) {
        return false;
    }
}
return true;

}