Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Сравнение 2х строк


Автор: Date 15.9.2011, 21:34
Добрый день.

есть вот такой вот код:

Код

function datedisable(date){
var BusyDates = new Array("2011-09-15","2011-09-17");
for (var i=0, c=BusyDates.length; i<c; i++) {
  var StrDate = formatDate(date,"y-MM-dd").toString();
  if (StrDate == BusyDates[i]){
    return [false,"","Unavailable"];
    }
  }
}



Проблема в том, что условие StrDate == BusyDates[i] не выполняется даже если там данные гарантированно сходятся. 

делал typeof для StrDate и BusyDates[i] показывает string для того и для другого. 

в чем может быть ошибка? 

Автор: InfMag 16.9.2011, 23:24
Сделайте:
Код

alert(StrDate+'—'+BusyDates[i]);

И проверьте, действительно ли есть совпадения. P.S. можно вместо alert использовать console.log, если используете отладчик.
И зачем на каждой итерации цикла создавать новую переменную? Можно и так:
Код

function datedisable(date){
var BusyDates = new Array("2011-09-15","2011-09-17");
var StrDate = formatDate(date,"y-MM-dd").toString();
for (var i=0, c=BusyDates.length; i<c; i++) {
  if (StrDate == BusyDates[i]){
    return [false,"","Unavailable"];
    }
  }
}

А вообще:
Код

function datedisable(date){
var BusyDates = new Array("2011-09-15","2011-09-17");
var StrDate = formatDate(date,"y-MM-dd").toString();
  for (var i=0, c=BusyDates.length; i<c; i++) {
    alert(StrDate+'—'+BusyDates[i]);
  }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)