Проблема с добавлением в массив 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());

→ Ссылка