Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Ключами могут быть только строки (strings) или, в случае ES6, символы. Объекты ключами быть не могут.
Это с чего бы по вашей прихоти снимается удобный и производительный инструмент?
Где для той же задачи используется массив то вот вам и места применения в каждом втором коде.
условно теперь получается костыльно
Вопрос именно в том, для решения какой нерешенной задачи нужен этот инструмент. Если ни для какой, и речь идет лишь об оптимизации производительности при работе с коллекциями
синтаксический сахар, не более
Получается, теперь у нас есть два неполноценных инструмента.
а фактически это будет велосипедом
Может быть есть пример как объект может выступать в роли ключа?
Во второй части про Map и слабые коллекции.
Да каждого из этих двух улучшений достаточно чтобы добавить это в язык.
Про скорость вообще мне кажется объяснять не надо. Скорость современного js критично важна, на нем сейчас слишком много всего пишется.
var foo = [], index, bar;
console.time('test');
for (index = 100000; index--;) { bar = Math.random(); if (foo.indexOf(bar) === -1) {foo.push(bar);} }
console.timeEnd('test');
var foo = new Set(), index, bar;
console.time('test');
for (index = 100000; index--;) { bar = Math.random(); if (!foo.has(bar)) {foo.add(bar);} }
console.timeEnd('test');
Тонкости ES6: Коллекции (часть 1)