Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.09.2018, 18:08
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

Значения переменной через 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, 14.09.2018 в 18:34.
Ответить с цитированием
  #2 (permalink)  
Старый 14.09.2018, 18:24
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Sonya, прежде всего
var str = 'автостоп';
alert( str.substr(2, 4));
alert(str.substr(5, 7));


Вопрос 2:
Чему будет равен результат выражения (str.substr(2, 4) || str.substr(5, 7)) ?

Последний раз редактировалось Dilettante_Pro, 14.09.2018 в 18:27.
Ответить с цитированием
  #3 (permalink)  
Старый 14.09.2018, 18:34
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Dilettante_Pro,
первому операнду
Ответить с цитированием
  #4 (permalink)  
Старый 14.09.2018, 18:38
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Sonya,
вот тут str.substr(2, 4) вы берёте 4 символа
здесь str.substr(5, 7) вы берёте 7 символов.

4символа = 7символов?

Вот тут почитайте: https://learn.javascript.ru/string#%...g-substr-slice
Ответить с цитированием
  #5 (permalink)  
Старый 14.09.2018, 18:47
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

Отредактировала. Написала, как пример. На самом деле переменная str будет подставляться, но в случаях, если "обрезанные" строки будут совпадать, то будет выполняться определенное действие. В данном примере значение равно "то".
Ответить с цитированием
  #6 (permalink)  
Старый 14.09.2018, 18:47
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

MC-XOBAHCK,
Влияние PHP
Ответить с цитированием
  #7 (permalink)  
Старый 14.09.2018, 19:27
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

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) == 'то' ? /* тут код если равно*/ : /* Тут если нет */;

Можно заменить || на && если оба варианта должны быть равны.
Ответить с цитированием
  #8 (permalink)  
Старый 14.09.2018, 19:40
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

MC-XOBAHCK, спасибо. Это я знаю, я интересовалась, можно ли сократить код, коль скоро, в обоих сравнениях значение одно и то же. Сейчас разобралась, что не получиться. Всем спасибо!
Ответить с цитированием
  #9 (permalink)  
Старый 14.09.2018, 19:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Sonya,
if (~[str.substr(2, 2),str.substr(5, 2)].indexOf('то') )
Ответить с цитированием
  #10 (permalink)  
Старый 14.09.2018, 20:00
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

рони, да, именно это! Спасибо большое!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение значения переменной в режиме реального времени The_FactioN jQuery 3 09.03.2016 12:20
Присвоение значения переменной из локального файла pleurard Общие вопросы Javascript 5 12.02.2015 18:01
скрипт, выводящий значения checkbox в строку через запятую Pincher Javascript под браузер 12 05.10.2012 21:49
Событие после изменения значения переменной Glen Swift Events/DOM/Window 5 04.06.2012 22:15
Передача полю объекта - массиву, значения элемента через set метод poorking Общие вопросы Javascript 1 13.02.2011 20:22