Представьте, что вам нужна структура данных ключ: значение, где находятся ключи, значение (не ссылка) объектов JavaScript этого типа:
{board: string, player: number}
и значения являются объектами JavaScript этого типа:
{
state:{
board: string,
player: number
},
score: number
}
Какая структура данных предложит вам лучшую скорость установки / получения производительности? Карта , где вам нужно было бы упорядочить объекты, прежде чем использовать их в качестве ключей, или какая-то хэш-карта, где вы фактически используете хеш-функцию для ключевых объектов, а затем используете хеш-код в качестве ключа в массиве или карта? Или, может быть, вы можете подумать о какой-то другой реализации, которая предложила бы лучшую производительность?
Просто чтобы прояснить, в нашей структуре данных, когда речь идет о ключах, хотя
const object1 = {board:'123456789', player: 1}
и
const object2 = {board:'123456789', player: 1}
относятся к двум отдельным объектам JavaScript, если они используются в качестве ключей, они указывают на одно и то же значение в нашей структуре данных ключ: значение. Они будут частью одной пары ключ: значение. Вот почему в случае с картой вам нужно было бы упорядочить объекты, прежде чем использовать их в качестве ключей.
Разыскиваемое поведение:
myDataCollection.set(object1, someValue)
myDataCollection.get(object2) // -> someValue
Текущая реализация Map для JavaScript делает это
myMap.set(object1, someValue)
myMap.get(object2) // -> undefined