На моем сервере nodeJS у меня есть следующее:
console.info(socket.geoData.hostname + socket.geoData.uri + ": " +
socket.geoData.country +
(socket.geoData.city != "false" ? ", " + socket.geoData.city : false)
);
Но если условие не выполняется, оно фактически добавляет слово false, а не просто ничего не делает. В PHP я мог бы вернуть false, и ничего не было бы добавлено. Как я могу добиться этого здесь?
Я не знаю порядка операций для оператора тернери относительно оператора != "False", поэтому вы можете добавить круглые скобки, чтобы сделать его явным. Кроме того, почему бы просто не сказать "" вместо false?
Я только что нашел один ответ на ваш вопрос, заданный @fra9001[stackoverflow.com/questions/31960619/…



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете взять пустую строку в качестве значения.
console.info(socket.geoData.hostname + socket.geoData.uri + ": " +
socket.geoData.country +
(socket.geoData.city != "false" ? ", " + socket.geoData.city : "")
);
Просто верните пустую строку ("") вместо false
Блин, почему я не подумал об этом. Извиняюсь. Спасибо.
Вы можете обернуть код в if, который проверяет, является ли socket.getData.city != false, прежде чем что-либо делать
if (socket.geoData.city !== "false") {
console.info(`${socket.geoData.hostname}@${socket.geoData.uri}:`);
console.info(`${socket.geoData.country} - ${socket.geoData.city}`);
}
город на самом деле "ложный"
stringилиboolean?