Замените значение переменной обычным текстом или игнорируйте его, если значение недоступно - PullRequest
0 голосов
/ 29 октября 2010

У меня есть следующий код для JavaScript:

function append_place(street, city, state, country) {
      var address = street + ', ' + city + ', ' + state + ', ' + country;
      $(".shop_location").append(address);

street, city, state, country - внешние переменные, взятые из базы данных. (Кстати, я работаю над проектом Ruby on Rails.)

В идеале, когда все значения найдены в базе данных, вывод в HTML будет:

<div class="shop_location">3 Spencer St, Melbourne, Victoria, Australia</div>

Но если state не имеет значения в базе данных, вывод в HTML будет:

<div class="shop_location">3 Spencer St, Melbourne, , Australia</div>

Как мне написать в Javascript, что когда значение пустое, оно будет заменено каким-либо другим значением, или, что еще лучше, пропустите его Идеальный результат, когда state не имеет значения:

<div class="shop_location">3 Spencer St, Melbourne, Australia</div>

Для некоторых других функций может потребоваться отображение «Недоступно», если значение не найдено.

Конечно, в Ruby on Rails я могу просто использовать оператор if-else, чтобы заменить текст.

Большое спасибо!

Ответы [ 2 ]

1 голос
/ 29 октября 2010

Я не знаю о javascript, но я часто делаю такие вещи в помощнике по рельсам:

[street, city, state, country].compact.join(', ')

Если записи равны нулю, это работает, но если есть пустая строка "", используйте это:

[street, city, state, country].reject(&:blank?).join(', ')
0 голосов
/ 29 октября 2010

А как же:

function append_place(street, city, state, country) {
  var a = new Array();
  if (street.length > 0) a.push(street);
  if (city.length > 0) a.push(city);
  if (state.length > 0) a.push(state);
  if (country.length > 0) a.push(country);

  var address = a.join(', ');
  $(".shop_location").append(address);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...