Проблема с добавлением в массив JavaScript
Получаю URL-параметры и хочу занести их в массив result. Но не понимаю, почему массив по итогу пустой?
Если же отображать в alert например url_search_split_split[0], то всё работает и выдаются ключи.
function getUrlParams() {
var result = [];
var url_search = window.location.search;
var url_search_split = url_search.replace(/^\?/, '').split('&');
for (i = 0; i < url_search_split.length; i++) {
var url_search_split_split = url_search_split[i].split('=');
result[url_search_split_split[0]] = url_search_split_split[1];
}
return result;
}
console.log(getUrlParams());
Ответы (1 шт):
Автор решения: Anton Shchyrov
→ Ссылка
Потому, что в JavaScript индексами массива не могут быть строки. А если вы хотите получить ассоциативный массив, то вам нужен не массив, а объект
function getUrlParams() {
var result = {};
var url_search = "?q=test&rlz=1C1GCEU_ruUA889UA889&oq=test&aqs=chrome..69i57j69i61j69i60l2.2743j0j7&sourceid=chrome&ie=UTF-8"
var url_search_split = url_search.replace(/^\?/, '').split('&');
for (i = 0; i < url_search_split.length; i++) {
var url_search_split_split = url_search_split[i].split('=');
result[url_search_split_split[0]] = url_search_split_split[1];
}
return result;
}
console.log(getUrlParams());