Вот допустим, у нас есть функция, на ввод которой ожидаем увидеть текст
function parseRoomName(text) {
var auditoryName = text.split('');
}
мы берем и превращаем текст в массив и возвращаем его
function parseRoomName(text) {
var auditoryName = text.split('');
return auditoryName
}
Что будет, если мы введем
parseRoomName('K-200')
?
["K", "-", "2", "0", "0"]
Все как должно быть, верно?
А теперь попробуем сделать так, чтобы эта функция убирала дефисы, которые могли бы попасть в текстовый инпут.
function parseRoomName(text) {
var auditoryName = text.split('');
for (var i = auditoryName.length - 1; i >= 0; i--) {
if (auditoryName[i] == '-') {
auditoryName.splice(i,1);
}
}
return auditoryName
}
Теперь вводим
parseRoomName('K-200')
, и получаем
["K", "2", "0", "0"]
Вводем
parseRoomName('K200')
, и тоже получаем
["K", "2", "0", "0"]
Но они не равны!
Если мы введем
parseRoomName('K-200') == parseRoomName('K200')
, мы получим
false
Если мы введем
parseRoomName('K-200').length == parseRoomName('K200').length
, то мы получим
true
Если мы введем
parseRoomName('K-200')[1]== parseRoomName('K200')[1]
, то тоже получим
true
Что не так с этой жизнью?