Итерировать объект, чтобы узнать его форму и значения - PullRequest
0 голосов
/ 28 мая 2020

Описание

Предположим, у нас есть переменная, которая является объектом (и даже может иметь любой тип данных). Однако мы не знаем его формы и значений , что означает, что мы не знаем, есть ли у него какое-либо свойство ( собственное или унаследованное ), и тогда, конечно, мы не знаем свойств его свойств и так далее ...

Пример

Предположим, у нас есть переменная X, но мы не знаем ' Я ничего об этом не знаю. Хотя на самом деле:

const X = {
    name: 'Bob',           // string
    age: 25,               // number
    hobbies: ['baseball', 'swimming', 'shopping', ...],         // array
    grades: {              // nested object
       Math: {
           Max: 90,
           Min: 60,        // just an example, can be more complicated
           Avg: 78
       },
       Art: {
           Max: 100,
           Min: 50,
           Avg: 66
       },
       ...
    },
    contact: {             // functions
        clickToEmail: () => { ..., doSomething(...)},
        clicktoCall: function callPhone({param1, param2, ...}) { ..., doSomething(...)}
    },
    // And maybe more nested complicated data structure, but it doesn't matter as long as there is a
    // way to find out on each level, we can just do an iteration till termination.
}

Вопрос

В идеальном мире мы хотели бы полностью воспроизвести этот объект, что означает, например, узнайте все его вложенные свойства с именами и значениями свойств, и, например, если некоторые вложенные свойства являются функциями, узнайте также их все параметры (имена не имеет значение), и даже узнать функцию детали реализации (возможно?).

Думаю, могут быть какие-то редко используемые встроенные методы (> ES6) чтобы помочь нам решить эту проблему?

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