Значения переменной через substr равны
Здравствуйте! Помогите, пожалуйста, разобраться. Значения переменной через substr равны, как записать их в условии в сравнении со значением. То есть:
var str = 'автостоп'; и вот здесь как корректно записать? if (str.substr(2, 2) == 'то' || str.substr(5, 2) == 'то') Можно как то это записать по-другому объединив, т.к сравнение идет с одним и тем же значением, или по-другому нельзя? То есть, если str.substr(2, 2) или str.substr(5, 2) равны 'то'. Так можно? if ((str.substr(2, 2) || str.substr(5, 2)) == 'то') |
Sonya, прежде всего
var str = 'автостоп'; alert( str.substr(2, 4)); alert(str.substr(5, 7)); Вопрос 2: Чему будет равен результат выражения (str.substr(2, 4) || str.substr(5, 7)) ? |
Dilettante_Pro,
первому операнду |
Sonya,
вот тут str.substr(2, 4) вы берёте 4 символа здесь str.substr(5, 7) вы берёте 7 символов. 4символа = 7символов? Вот тут почитайте: https://learn.javascript.ru/string#%...g-substr-slice |
Отредактировала. Написала, как пример. На самом деле переменная str будет подставляться, но в случаях, если "обрезанные" строки будут совпадать, то будет выполняться определенное действие. В данном примере значение равно "то".
|
MC-XOBAHCK,
Влияние PHP |
if (str.substr(2, 2) == 'то' || str.substr(5, 2) == 'то') { } Это модель или, где str.substr(2, 2) равно 'то' или str.substr(5, 2) равно 'то'. Тоесть что то одно из двух равно и условие пропускает код внутри. А если так сделать: if (str.substr(2, 2) == 'то' && str.substr(5, 2) == 'то') { } тогда оба варианта должны быть равны 'то' Можно таким синтаксисом записать: str.substr(2, 2) == 'то' || str.substr(5, 2) == 'то' ? /* тут код если равно*/ : /* Тут если нет */; Можно заменить || на && если оба варианта должны быть равны. |
MC-XOBAHCK, спасибо. Это я знаю, я интересовалась, можно ли сократить код, коль скоро, в обоих сравнениях значение одно и то же. Сейчас разобралась, что не получиться. Всем спасибо!
|
Sonya,
if (~[str.substr(2, 2),str.substr(5, 2)].indexOf('то') ) |
рони, да, именно это! Спасибо большое!
|
Часовой пояс GMT +3, время: 11:47. |