Переписать условие на JS

12
D
На сайте с 28.06.2008
Offline
976
632

Есть условие такого вида

const option = tmp.pathname.substring(0, 10) === '/firm/' ? 'com_firm' : 'com_agent';

как сюда добавить еще одну пару ?

'/firm2/' ? 'com_firm2'

это условие должно быть по типу if / elseif / else

Gerga
На сайте с 02.08.2015
Offline
89
#1

Dram, логику я бы вынес в отдельную функцию или метод. Пример:


var getPathName = function (key) {
switch (key) {
case '/firm/' : return 'com_firm';
case '/firm2/': return 'com_firm2';
default : return 'com_agent';
}
};

const option = getPathName(tmp.pathname.substring(0, 10));
Z0
На сайте с 03.09.2009
Offline
731
#2
Gerga:
Dram, логику я бы вынес в отдельную функцию или метод. Пример:

Красивенько :p

D
На сайте с 28.06.2008
Offline
976
#3

Gerga, спасибо, сработало!

Gerga
На сайте с 02.08.2015
Offline
89
#4

ziliboba0213, это еще не самый лучший вариант, там логика и данные сплетены.

Более лучше было бы создание подобного метода для объекта:


function getPathName(key) {
if (typeof this.pathnames[key] !== 'undefined') {
return this.pathnames[key];
}

return this.pathnames['default'];
}
Dram:
Gerga, спасибо, сработало!

Пожалуйста.

S
На сайте с 30.09.2016
Offline
459
#5

А вообще, вот так, если использовать именно тернарный оператор

const option = tmp.pathname.substring(0, 10) === '/firm/' ? 'com_firm' : (tmp.pathname.substring(0, 10) === '/firm2/' ? 'com_firm2' : 'com_agent');
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
VoV@
На сайте с 22.09.2007
Offline
196
#6
Sitealert:
А вообще, вот так, если использовать именно тернарный оператор
const option = tmp.pathname.substring(0, 10) === '/firm/' ? 'com_firm' : (tmp.pathname.substring(0, 10) === '/firm2/' ? 'com_firm2' : 'com_agent');

Но лучше так не делать, читаемость сильно ухудшается.

⭐ Разработка Андроид-приложений (Xamarin C#). ⭐ Разработка ASP.NET (WebForms, MVC, WebAPI, Core). ⭐ Цой жив!
S
На сайте с 30.09.2016
Offline
459
#7
VoV@:
Но лучше так не делать, читаемость сильно ухудшается.

Я нормально читаю. Дело вкуса.

IL
На сайте с 20.04.2007
Offline
412
#8


option=function(key){
paths = {'/firm/':'com_firm', '/firm2/':'com_firm2'}
return key in paths ? paths[key] : 'com_agent';
}(tmp.pathname.substring(0, 10));
D
На сайте с 28.06.2008
Offline
976
#9

Помогите плиз еще разок. не могу я понять пока логику JS

хочу вставить названия фирм в зависимости от урла, делаю по аналогии с примером выше

var getFirm = function (key) {
switch (key) {
case '/url1/' : return 'firm1';
case '/url2/': return 'firm2';
default : return 'firm3';
}
};

const option = getFirm (tmp.pathname.substring(0, 10));

jQuery('#mod-select').html('');
jQuery('#mod h5').html('Top'+option+'<span class="hide_m"><br></span>'+res.loc);

Где ошибка? Пытаюсь сделать разные названия "Top firm1..." и т.п в зависимости от урла

Gerga
На сайте с 02.08.2015
Offline
89
#10

Dram,


console.log('key: ' + tmp.pathname.substring(0, 10));
console.log('#mod-select: ' + jQuery('#mod-select').length);
console.log('#mod h5: ' + jQuery('#mod h5').length);

что выводится в консоли браузера?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий