Я ищу способ создания коллекции предметов, каждый из которых будет ссылаться на саму коллекцию.
Дано:
const sources = [1, 2, 3];
Ожидаемое:
const results = [{value:1, items:[{value: 1, items:[{value: 1, items...}, ...]}]}]
Сломан из-за того, что массивы копируются по значению в коде js:
const source = [1, 2, 3];
let result = [];
result = source.map(value => ({ value, items: result }));
Я пробовал несколько вещей в основном вокруг (()=> ...)()
, но это ничего не дало. Мне удалось заставить его работать с элементами, являющимися функцией, а не значением, что не совсем то, что я хочу.
Вот лучшее решение, которое я нашел до сих пор:
Код:
const source = [1, 2, 3];
let items = [];
items = source.map(value => () => ({ value, items }));
Использование:
items[1]().items[1]().value // 2
items[1]().items[2]().items[0]().value // 1