Задать вопрос
origami1024
@origami1024
went out for a night walk

Хочу детальное объяснение, как работает Proxy() объект в js на приведенном внутри примере?

Был вопрос, как заполнить двумерный массив единичками по диагонали и нулями в остальных элементах не используя циклы.
И, короче, принятый ответ на него был использовать .map().
Но, если в строгом смысле, то .map() использует цикл.
Короче, сложная задачка. Можно было бы заморочится с рекурсией. Но я наткнулся на вот этот кусок кода из другого измерения.
let matrix = n => new Proxy(Array(n), {
	get: (a, i) => a[i] || new Proxy(Array(n), {
        get: (b, j) => b[j] || Number(i === j)
    })
});

https://jsfiddle.net/dgy2rto9/

Кто может объяснить, это точно не цикл в каком-то смысле, как .map(). И уточнить какой принцип/шаблон программирования (в противовес циклу или рекурсии) здесь используется?
  • Вопрос задан
  • 101 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 1
profesor08
@profesor08 Куратор тега JavaScript
При обращении создает значения. В данном случает избегается заполнение массива при инициализации. Зато при каждом обращении к элементам происходит вычисление. Хорошо ли это, или плохо, сказать не могу, для каких-то случаев может быть полезно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 13:22
30000 руб./за проект
18 дек. 2024, в 12:37
10000 руб./за проект
18 дек. 2024, в 12:22
5000 руб./за проект