Size: a a a

JavaScript Noobs — сообщество новичков

2021 July 16

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
мне стало лень читать и я своё написал:

const optionalChaining = (obj, path) => {
 let cur = obj;
 for (const field of path) {
   cur = cur[field];
   if (cur === undefined) {
     return undefined;
   }
 }
 return cur;
};
источник

AN

Alexander Naumov in JavaScript Noobs — сообщество новичков
если прохожу по всем ключам через цикл, то нету такой ошибки, но сказали иди упрощай код и делай без цикла
источник

AN

Alexander Naumov in JavaScript Noobs — сообщество новичков
да вот с циклом нельзя говорят, но спасибо )
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
а, а чё с рекурсией надо?
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
чё за бред
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
всм упрощать код рекурсией?
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
поехавшие
источник

AN

Alexander Naumov in JavaScript Noobs — сообщество новичков
не, рекурсия обязательное условие
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
лан, ща
источник

AN

Alexander Naumov in JavaScript Noobs — сообщество новичков
проверка походу фейлится, если в массив приходит больше значений, чем ключей в объекте
источник

AN

Alexander Naumov in JavaScript Noobs — сообщество новичков
а мы к тому времени из рекурсии выходим и в result уже есть значение вместо требуемого undefined
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
const optionalChaining = (obj, [key, ...path]) => obj[key] === undefined ? undefined : path.length ? optionalChaining(obj[key], path) : obj[key];
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
ну нате
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
а, можно проще, я дурак
или нельзя
или можно, хз, крч. и так норм хд
источник

AN

Alexander Naumov in JavaScript Noobs — сообщество новичков
спасибо ))
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
но я бы им так кинул: oc=(o,[k,...p])=>o[k]===undefined?undefined:p.length?oc(o[k],p):o[k];
источник

М

Михаил in JavaScript Noobs — сообщество новичков
телеграф
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
во, я тупой:
const optionalChaining = (obj, [key, ...path]) => obj[key] === undefined || path.length === 0 ? obj[key] : optionalChaining(obj[key], path);
источник

Г

Глиномес in JavaScript Noobs — сообщество новичков
Всем привет! Есть такой вопрос: как сделать так, чтобы при нажатии не на элемент этот элемент исчезал?
источник

IS

Ivan Savin in JavaScript Noobs — сообщество новичков
ну или
oc=(o,[k,...p])=>o[k]===undefined||!p.length?o[k]:oc(o[k],p);
источник