Предполагая, что обе строки имеют одинаковое количество частей, вы можете разделить обе части, и уменьшить URL.Для каждой части URL, проверьте соответствующую часть шаблона.Если он начинается с :
, удалите из ключа :
part String.substring()
, а также его значение и значение для объекта.
const templateURL = '/something/:key1/somethingelse/:key2'
.split('/');
const url = '/something/12/somethingelse/3';
const result = url.split('/')
.reduce((r, s, i) => {
const part = templateURL[i];
if(part.startsWith(':')) {
r[part.substring(1)] = isNaN(+s) ? s : +s;
}
return r;
}, {});
console.log(result);