Что означает «Наборы для массивов, как карты для объектов»? - PullRequest
4 голосов
/ 28 марта 2019

Я изучаю ES6 и наткнулся на эту фразу в этом видео , в котором говорится: «Вы можете сказать, что Наборы для Массивов, как Карты для Объектов».

Что означает эта фраза? Почему Set больше связан с массивами, чем с картами? (и наоборот для объектов).

Я знаю, что это действительно конкретный вопрос, но моя голова действительно поворачивается, так как я услышал эту фразу!

Заранее спасибо, я новичок в вопросе о ТАК, поэтому любые комментарии приветствуются.

1 Ответ

3 голосов
/ 28 марта 2019

A Set - это набор значений, так же, как массив - это набор значений (без ключей, кроме .length / .size)

A Map представляет собой набор пар ключ-значение, точно так же, как объект представляет собой набор пар ключ-значение. (хотя ключи Map могут быть чем угодно , а не только строками)

Конечно, есть еще много различий, но различие между парами значения и ключ-значение является наиболее важным для того, что вы спрашиваете.

Map и пример объекта:

const key = 'key';
const value = 'value';

const map = new Map();
const obj = {};

map.set(key, value);
obj[key] = value;

Set и пример массива:

const value = 'value';

const set = new Set();
const arr = [];

set.add(value);
arr.push(value);
...