Всегда используйте объекты для нечисловых наборов ключей.На это есть разные причины:
(1) Массивы оптимизированы для доступа к цифровым клавишам, поэтому использование нечисловых клавиш будет медленнее.Объекты предназначены для произвольных хранилищ значений ключей.
(2) Сериализация удаляет все нечисловые ключи из массивов:
const arr = [];
arr.key = "test";
console.log(JSON.parse(JSON.stringify(arr))); // []
(3) Свойства и методы массива могут сбить вас с толку:
.length
учитывает только цифровые клавиши.
.map
, .forEach
, ... будет выполнять итерацию только по цифровым ключам.