Задача на вложенность объектов [дубликат]

106
16 апреля 2022, 18:40
На этот вопрос уже даны ответы здесь:
Функция get, которая получает объект и путь к вложенному свойству объекта и возвращает значение этого свойства (3 ответа)
Закрыт 1 год назад.

Подскажите пожалуйста , как решить подобную задачку ? ( была на собеседовании ) Не пойму, что делает последний аргумент ? Попытался получить конечный ключ, но промежуточный не могу, что бы их поэтапно сравнить со строковым значением

upd. задачка решена, спасибо всем , кто откликнулся !

const obj = {
  a: {
    b: {
      c: 'c',
    },
  },
  d: 'd',
};
const get = (obj, str, def = null) => {

};
console.log(get(obj, 'a.b.c')); // 'c'
console.log(get(obj, 'a.c', 0)); // 0
console.log(get(obj, 'a.e')); // null

const obj = {
  a: {
    b: {
      c: 'c',
    },
  },
  d: 'd',
};
const get = (obj, str, def = null) => {
// начало моего кода
  let arrFromStr = str.split('.');
  const result = [];
  for (let prop in obj) {
    const value = obj[prop];
    if (typeof value === 'object') {
      result.push(get(value));
    } else {
      result.push(value);
    }
  }
  return result;
};
console.log(get(obj, 'a.b.c')); // 'c'
console.log(get(obj, 'a.c', 0)); // 0
console.log(get(obj, 'a.e')); // null

Answer 1
result.push(get(value)); // сколько параметров должно быть у функции get?

const obj = {
  a: {
    b: {
      c: 'c',
    },
  },
  d: 'd',
};
const get = (obj, str, def = null) => {
  let arrFromStr = str.split('.');
  for (let i = 0; i < arrFromStr.length; i++) {
    obj = obj[arrFromStr[i]];
    if (obj === undefined || obj === null)
      return def;
  }
  return obj;
};
console.log(get(obj, 'a.b.c')); // 'c'
console.log(get(obj, 'a.c', 0)); // 0
console.log(get(obj, 'a.e')); // null

READ ALSO
Что такое микро и макрозадачи в JS?

Что такое микро и макрозадачи в JS?

Объясните , если можно, по простому что такое микро- и макрозадачи, а то мало информации на эту темуСпасибо!

126
Игнорирование Регистра в JS

Игнорирование Регистра в JS

К примеру имеем массив:

90