В JavaScript объекты нельзя напрямую использовать в качестве ключей в другом объекте. Однако существует несколько альтернативных подходов, которые можно использовать для достижения аналогичной функциональности. Вот несколько методов, которые вы можете использовать:
- Строка объекта. Вы можете преобразовать объект в строку с помощью
JSON.stringify()
, а затем использовать строку в качестве ключа. Однако имейте в виду, что этот метод имеет ограничения, поскольку он не обрабатывает ссылки на объекты и функции.
Пример:
const obj = { name: "John", age: 30 };
const key = JSON.stringify(obj);
const myObject = {};
myObject[key] = "Some value";
- Используйте уникальный идентификатор. Вместо использования всего объекта в качестве ключа вы можете создать уникальный идентификатор для каждого объекта и использовать его в качестве ключа. Этого можно добиться, присвоив каждому объекту уникальный идентификатор свойства.
Пример:
const obj = { name: "John", age: 30, id: "uniqueId123" };
const myObject = {};
myObject[obj.id] = "Some value";
- Структура данных карты: JavaScript предоставляет структуру данных
Карта
, которая позволяет напрямую использовать объекты в качестве ключей.
Пример:
const myMap = new Map();
const obj = { name: "John", age: 30 };
myMap.set(obj, "Some value");