Хочу получить объект из массива объектов по указанному свойству. Массив - это route map. Все прекрасно, но если в конце свойства есть цифры, которые могут динамически меняться, то все ломается
const arr = [
{url: '/team/:teamId([0-9]+)', name: 'Some name'},
{url: '/home', name: 'Some name 12'}
];
Функция для получения
getPageName = url => _.find(arr, ['url', url]).name
;
Может кто-то знает, как учесть динамически меняющиеся цифры?
Пример url'ов:
/team/3
/team/120
Затеял все это, чтоб получать название страницы при попадании на нее..
Home страницу получить не составляет труда, как вы уже поняли, а вот Team page - нет.
Можно попробовать что-то вроде такого.
const arr = [{
url: '/team/:teamId([0-9]+)',
name: 'Some name'
},
{
url: '/team/:teamId([0-9]+)/:playerId([a-c]{3})',
name: 'Some name'
},
{
url: '/home',
name: 'Some name 12'
}
];
function getRoute(arr, url) {
const getRegExp = (urlRoute) => {
const regexp = /[:].+\((.*)\)/;
const paths = urlRoute.split('/').map(m => {
const res = regexp.exec(m);
return res ? m.replace(res[0], res[1]) : m;
});
return paths.join('/') + '$';
}
return arr.find(el => {
const regexp = getRegExp(el.url);
if (regexp) {
return (new RegExp(regexp)).test(url);
} else {
return el.url === url;
}
});
}
console.log(getRoute(arr, '/team/2'));
console.log(getRoute(arr, '/team/2/aaa'));
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Столкнулся с ошибкой при обновлении значенияПередаю значения, но стейт не обновляется
Задача суть задачи довольно простаНа сайте есть input, посетитель ставит в него курсор и потом нажимает Ctrl+V
Есть сервер на котором хранится база данныхЧерез постман делаю POST и в body указываю тип данных json, делаю запись типа "name":"John", "password":"123"и все нормально,...
Хотелось бы проверить правильность отработки ошибки timeout при загрузке по XHR файлаВ Chrome можно задать скорость загрузки/отдачи документа