(Typescript) Как поместить переменную в массив и постоянно обновлять ее значение? - PullRequest
1 голос
/ 03 октября 2019

У меня есть такая структура:

export var CustomDropdown: any[] = [
    { 
        class_name: "fonts-list", 
        list: false,
        ...
    }
]

После инициализации этой переменной я создаю еще одну:

CustomDropdown.push(
    { 
        class_name: "colors-list", 
        list: CustomDropdown[0].list,
        ...
    }
)

Видите ли, во второй раз, когда я создаю эту структуру, ясм. list от первого. Это работает нормально.

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

Дело в том, что этого не происходит, и я полагаю, что это потому, что когда создается второй элемент, он просто читает значение list первого, но не создает никакой связи между ними.

Поэтому я верю, что что-то вроде указателя C решит мою проблему, или любую другую стратегию, которую я не знаю.

Кроме того, я не хочу, чтобы функция управляла этим, только если ееневозможно. Кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 03 октября 2019

Предполагая, что list в конечном итоге станет массивом, как следует из названия (которое вы инициализировали с помощью false), вы можете сделать это вместо этого:

export var CustomDropdown: any[] = [
    { 
        class_name: "fonts-list", 
        list: [],                  // empty Array (1)
        ...
    }
]

CustomDropdown.push(
    { 
        class_name: "colors-list", 
        list: CustomDropdown[0].list, // "reference" sharing of (1)
        ...
    }
);

Отсюда, если вы сделаете CustomDropdown[i].list.push(element), это будет отражено в CustomDropdown[0].list.

Кроме этого, вы не можете передать значение примитива, такого как логическое, путем совместного использования ("reference"), как я считаю.

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