Как можно получить объект, вложенный в другой объект, используя строковый ключ в методе filter()?

Как я могу получить доступ к полю объекта, используя строковый ключ, находящийся в массиве имен аргументов, в данном контексте объекта класса Test?
  • 8 марта 2024 г. 15:58
Ответы на вопрос 2
Для доступа к вложенному объекту, используя строковый ключ в методе filter(), можно воспользоваться следующим способом:

```javascript
const obj = {
  outerObj: {
    innerObj: {
      key: 'value'
    }
  }
};

const key = 'innerObj';
const result = Object.keys(obj)
  .filter(objKey => objKey === key)
  .reduce((acc, objKey) => obj[objKey], {});

console.log(result);
```

Чтобы получить доступ к полю объекта, используя строковый ключ находящийся в массиве имен аргументов в контексте объекта класса Test, вам нужно пройти по каждому элементу массива и вызвать соответствующее поле объекта. Например:

```javascript
class Test {
  constructor() {
    this.data = {
      name: 'John',
      age: 25
    };
  }

  getFieldByKeys(keys) {
    let result = this.data;
    keys.forEach(key => {
      result = result[key];
    });
    return result;
  }
}

const test = new Test();
const keys = ['name'];
console.log(test.getFieldByKeys(keys)); // Output: John
```

В данном случае мы имеем класс Test с методом getFieldByKeys, который принимает массив ключей и последовательно переходит по каждому ключу для получения значения из объекта data.
Очевидно, что входящий --test и --test в объекте не равны. Пробелы там, спецсимволы, ещё что-то. Другого варианта просто нет.
Похожие вопросы