История изменений
Исправление KivApple, (текущая версия) :
Нет.
Используя строковые ключи на массиве вы именно расширяете его объект. И это имеет два последствия - у вас в мапе будут лишние ключи типа length и с точки зрения всяких биндингов к другим языкам у вас будет в первую очередь именно массив, а доступ к кастомным полям может оказаться через попу, потому что массив с кастомными полями не самый популярный use-case.
А ключевое отличие Map от просто объекта с произвольным набором полей - возможность использовать нестроковые ключи.
А авторы «не парьте себе мозг» типичные быдлокодеры, пораждающие неподдерживаемый код с непредсказуемыми побочными эффектами при смене или обновлении JS движка. Не надо быть одним из них. Впрочем, возможно, во времена NetScape на JS нельзя было иначе, но за годы язык сильно эволюционировал и на нём стало больше возможностей писать адекватный код.
Массивы - для числовых индексов.
Объекты, Map - для строковых индексов, причём второе предпочтительнее.
Map - для нестроковых индексов.
Отклонение от этих правил - верный способ выстрелить себе в ногу в самый неожиданный момент.
Исходная версия KivApple, :
Нет.
Используя строковые ключи на массиве вы именно расширяете его объект. И это имеет два последствия - у вас в мапе будут лишние ключи типа length и с точки зрения всяких биндингов к другим языкам у вас будет в первую очередь именно массив, а доступ к кастомным полям может оказаться через попу, потому что массив с кастомными полями не самый популярный use-case.
А ключевое отличие Map от просто объекта с произвольным набором полей - возможность использовать нестроковые ключи.
А авторы «не парьте себе мозг» типичные быдлокодеры, пораждающие неподдерживаемый код с непредсказуемыми побочными эффектами при смене или обновлении JS движка. Не надо быть одним из них.
Массивы - для числовых индексов.
Объекты, Map - для строковых индексов, причём второе предпочтительнее.
Map - для нестроковых индексов.
Отклонение от этих правил - верный способ выстрелить себе в ногу в самый неожиданный момент.