Дисциплины - Проектирование динамических страниц

Решение типовых задач - Рекурсия

Рекурсия в структурах данных.

Рекурсию можно также использовать для последовательного обхода DOM HTML до тех пор, пока не будет найден  элемент, не содержащий дочерних элементов. В следующем примере рекурсия применена для глубокого обхода объекта с целью извлечения вложенного значения:

var dan = {
  type: "person",
  data: {
    gender: "male",
    info: {
      id: 22,
      fullname: {
        first: "Dan",
        last: "Deacon"
      }
    }
  }
}

Напишем функцию deepPick, которая может служить для доступа к типу Dan, хранящемуся сразу же в первом объекте, или для углубления во вложенные объекты для нахождения имени Dan. Отправляя строку, в которой используется точечная нотация, можно указать, где найти значения, глубоко вложенные в объект:

const deepPick = (fields, object={}) => {
  const [first, ...remaining] = fields.split(".")
  return (remaining.length) ? deepPick(remaining.join("."), object[first]) : object[first]
}

Использование функции:

deepPick("type", dan); // "person"
deepPick("data.info.fullname.first", dan); // "Dan"

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
00421-00422 ИИТ БГУИР
00423 ИИТ БГУИР
10421-10422 ИИТ БГУИР
10423 БГУИР
20421 БГУИР
30421 БГУИР
30423 БГУИР


Изображения Видео

1. JavaScript. Функциональное программирование. Лекция 2. Преобразование данных <iframe width="560" height="315" src="https://www.youtube.com/embed/EBKzRg4aTro" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
2. JavaScript. Функциональное программирование. Лекция 2 (продолжение) <iframe width="560" height="315" src="https://www.youtube.com/embed/phyt4PFk6Pc" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
3. HTML5 http://erud.by/files/books/HTML5.docx
4. ООП в JavaScript http://erud.by/object_orient_program/586
5. Фоновое видео jQuery http://johnpolacek.github.io/BigVideo.js
Учебная программа