← Усі задачіJavaScript · Middle
get: значення за шляхом
Напишіть функцію get(obj, path, defaultValue), як у lodash. Шлях - рядок вигляду "a.b[0].c" або масив ключів ["a", "b", 0, "c"].
Якщо дорогою трапився null чи undefined або підсумкове значення undefined, поверніть defaultValue. Значення 0 і null наприкінці шляху - справжні, їх повертаємо як є.
Ctrl+Enter - запустити тести. Tab - відступ; щоб вийти з редактора клавіатурою, натисніть Esc, а потім Tab. Код зберігається в цьому браузері.
Тести (7)
const obj = { a: { b: [{ c: 42 }] } }; expect(get(obj, 'a.b[0].c')).toBe(42);
expect(get({ a: { b: 1 } }, ['a', 'b'])).toBe(1);
expect(get({ list: [10, 20] }, 'list[1]')).toBe(20);
expect(get({ a: null }, 'a.b.c', 'none')).toBe('none');
expect(get({}, 'x.y')).toBe(undefined);
expect(get({ a: { b: 0 } }, 'a.b', 5)).toBe(0);
expect(get({ a: { b: null } }, 'a.b', 5)).toBe(null);