Как корректно вставить условие?

173
19 апреля 2022, 04:00

Получаю ответ от сервера и на его основе выводу на страницу результаты поиска. в значениях может приходить null. Если приходит null, то на странице нужно вывести пустой блок. Пробовал прописать тернарный оператор для ip - получаю абракадабру на странице. Как правильно описать условие?

if (response.length > 0) {
        response.forEach(function (item) {
          resulList += '<div class="table-row" data-id="' + item.id + '">' +
            '<div class="table-cell"><input type="checkbox" name=""></div>' +
            '<div class="table-cell">' + item.full_name + '</div>' +
            '<div class="table-cell">' + item.category__name + '</div>' +
            '<div class="table-cell">' + (item.ip) ? item.ip : "" + '</div>' +
            '<div class="table-cell">' + item.domain_name + '</div>' +
            '<div class="table-cell">' + item.hardware_purpose + '</div></div>';
        })
      }
Answer 1

Выучить приоритеты операторов https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

Ваши строки

... +
'<div class="table-cell">' + (item.ip) ? item.ip : "" + '</div>' +
...

эквивалентны

(... + '<div class="table-cell">' + item.ip) ? (item.ip) : ("" + '</div>' + ...)

А вам надо написать

'<div class="table-cell">' + (item.ip ? item.ip : "") + '</div>' +
// или даже проще
'<div class="table-cell">' + (item.ip || "") + '</div>' +
Answer 2

Если я правильно понял вашу проблему, то вам нужно вот эту часть кода (item.ip) ? item.ip : "" заменить на (item.ip || "") (тут тернарный не нужен), так как этим враппом в выражение вы четко указываете приоритет выполнения, а на данный момент у вас происходит изначальное вычисление всего до знака ?, становится условием истинности и выводит результат вычисления item.ip + всё после окончания тернарного оператора.

READ ALSO
Как сделать фильтр по диапазону? [закрыт]

Как сделать фильтр по диапазону? [закрыт]

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение

129
Не работает плавное появление блока в jQuery

Не работает плавное появление блока в jQuery

Всем приветПомогите пожалуйста

219
div в разных родителях в зависимости от ширины экрана/окна

div в разных родителях в зависимости от ширины экрана/окна

Нужно изменять положение блока div на странице в зависимости от ширины экрана/окна следующим образом:

175