Я просматривал кучу ответов на эту проблему и в итоге связывал их вместе, используя одну строку с reduce
:
const hashObj = location.hash.replace('#', '').split('&').reduce((prev, item) => Object.assign({[item.split('=')[0]]: item.split('=')[1]}, prev), {});
Очевидно, что в этой строке происходит много всего.Это может быть переписано так для ясности:
const hashObj = location.hash.replace('#', '').split('&').reduce((prev, item) => {
return Object.assign({[item.split('=')[0]]: item.split('=')[1]}, prev);
}, {});