Что такое ПЕДАК? Почему я должен заботиться об этом? Как пройти этот процесс быстрее и проще, чем просто кодирование? Это все вопросы, которые я задавал себе, на протяжении всего своего опыта я понял, что наличие своего рода плана будет иметь большое значение. Программирование вслепую только заставит вас застрять и разочароваться. Я испытал это на собственном опыте, я застрял на одной проблеме в течение нескольких часов. Как только я смог понять свою простую ошибку, я понял, что если бы у меня был план, я бы сделал. Так что же такое PEDAC,

PEDAC означает проблему, пример, структуру данных, алгоритм и код. Давайте рассмотрим проблему, с которой я так долго боролся.

2. Напишите функцию, которая вращает массив, перемещая первый элемент в конец массива. Не изменяйте исходный массив.

Сначала нам действительно нужно погрузиться в вопрос и выяснить, что именно он говорит нам делать, нам нужно убедиться, что мы полностью понимаем, что можем начать составлять план. Этот конкретный вопрос просит нас сделать копию массива и поместить его первый элемент в конец массива. Теперь, когда у нас есть понимание того, что задает вопрос, мы должны проиллюстрировать его примером.

rotateArray([7, 3, 5, 2, 9, 1]); should return => // [3, 5, 2, 9, 1, 7]
rotateArray([‘a’, ‘b’, ‘c’]); should return => // [“b”, “c”, “a”]

После того, как у нас есть наши примеры и мы знаем, что мы делаем, мы определяем, какие структуры данных мы будем использовать, глядя на проблему, я могу сказать, что мы определенно будем использовать массивы и мы потенциально будем использовать числа и строки. Затем мы должны придумать наш алгоритм, это, по сути, наша дорожная карта или проект; пошаговый план.

Наш алгоритм будет выглядеть примерно так:

- Сначала мы проверяем, действительно ли массив является массивом, если нет, мы хотим вернуть undefined

- Затем мы проверяем, является ли это массивом и имеет ли элементы внутри (если в нем нет элементов, то нечего вращать). Если это правда, мы хотим повернуть массив.

- Наконец, если это массив и внутри нет элементов, мы хотим вернуть параметр.

Когда у нас есть алгоритм, мы можем погрузиться в кодирование. Мой код выглядит так:

function rotateArray(x) {
 if (Array.isArray(x) === false) {
 return undefined;
 } if ((x.length !== 0) && (Array.isArray(x) === true)) {
 const clone = […x];
 const firstElement = clone.shift();
 const count = clone.push(firstElement);
 return clone;
 }
 return x;
}

PEDAC очень важен и находчив, потому что он экономит массу времени и избавляет от головной боли. Сначала я проверял, является ли это массивом, а затем проверял, не является ли он массивом. По логике было бы более разумно проверить, не является ли это массивом, и вернуть значение undefined без выполнения какого-либо кода. Мы хотим, чтобы первый тест был верным, если аргумент не является массивом, то нет смысла его прогонять, поэтому он возвращает undefined. После этого мы можем перейти к следующему тесту. Мое решение этой проблемы было таким простым, но все же заняло у меня несколько часов, потому что я не нашел времени, чтобы спланировать это. НЕ делайте тех же глупых ошибок, что и я, используйте PEDAC.