Javascript ссылаются на индекс, как перечисление, рефакторинг - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть const объект , на который я ссылаюсь.Я имею в виду как ключ, так и значение.По не зависящим от меня причинам я не хочу напрямую использовать ключ (поскольку он является целым числом).

export const listObject = {
    1: "a",
    2: "b",
    3: "c",
    4: "d",
}

, поэтому, когда я сопоставляю это, я называю индекс ключа как mappedIndex, и значение как listObject[mappedIndex] Я хочу обратиться к клавише по-другому.Будет ли что-то подобное этой работе?

export const listObject = {
    1: "a",
    "reason1": 1,
    2: "b",
    "reason2": 2,
    3: "c",
    "reason3": 3,
    4: "d",
    "reason4": 4,
}

Игнорировать соглашение об именах, это было просто написано в качестве примера.так что теперь я могу ссылаться на key как listObject[listObject.reason1], а значение по-прежнему как listObject[mappedIndex], я мог бы все это перепутать, так как при этом я не смогу правильно отобразить.какие-нибудь рекомендации?

Ответы [ 3 ]

0 голосов
/ 19 февраля 2019

Вы можете исключить константу listObject как массив объектов, как указано ниже:

 const listObject = [{"index":1,"value":"a"},{"index":2,"value":"b"}];

И вы можете получить доступ к значению индекса 1 как bleow:

listObject [0] .value => "символ "

0 голосов
/ 19 февраля 2019

Если вы абсолютно хотите иметь возможность доступа к объекту таким образом, я бы выбрал следующий подход: во-первых, у нас есть наш базовый объект:

export const listObject = {
    1: "a",
    2: "b",
    ...
}

Затем я бы создал другойобъект, который содержит ключи.

export const listObjectKeys = {
    reason1: 1,
    reason2: 2,
    ...
}

Теперь вы можете получить доступ к свойству объекта listObject, используя listObject[listObjectKeys.reason1].Я считаю, что это лучший способ структурировать все, чтобы случайно не испортить ваш listObject дополнительными строками, которые на самом деле являются просто ключами.Дайте мне знать, если у вас есть какие-либо вопросы или я что-то недопонимаю.

0 голосов
/ 19 февраля 2019

Вы можете сделать что-то вроде машинописного текста enums.Они передают что-то вроде этого в javascript:

const listObject = {}
listObject[listObject["reason1"] = 1] = "a";
listObject[listObject["reason2"] = 2] = "b";
listObject[listObject["reason3"] = 3] = "c";
listObject[listObject["reason4"] = 4] = "d";

(Это то же самое, что и второй пример в вопросе)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...