Массив print()


Насколько хлопотно каждый раз выводить console.log на каждый результат метода цепочки массивов для отладки?

Давайте посмотрим на следующий код

const fruits = [🍌, 🍎, 🍎, 🍍, 🍌, 🥝, 🥝, 🥝]
const result = fruits
                     .filter(emoji => [🥝, 🍌].includes(emoji))
                     .map(emoji => emoji === 🍌 ? 🍋 : emoji)

console.log(result) // [🍋, 🍋, 🥝, 🥝, 🥝]
Вход в полноэкранный режим Выйти из полноэкранного режима

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

Вы, вероятно, делаете это во время отладки

const fruits = [🍌, 🍎, 🍎, 🍍, 🍌, 🥝, 🥝, 🥝]
const getKiwiNBanana = fruits.filter(emoji => [🥝, 🍌].includes(emoji))                    
console.log(getKiwiNBanana) // [🍌, 🍌, 🥝, 🥝, 🥝]
const result = getKiwiNBanana.map(emoji => emoji === 🍌 ? 🍋 : emoji)
console.log(result) // [🍋, 🍋, 🥝, 🥝, 🥝]
Войдите в полноэкранный режим Выйти из полноэкранного режима

Хорошо, но вы пишете больше кода, и он не такой элегантный.

Array.print()

Добавьте этот код в корень вашего приложения и на глобальный уровень. Это небольшое расширение функциональности Array, которое позволит вам вывести результат на печать легко и элегантно. Вас может насторожить ошибка eslint no-extend-native, но не стоит так волноваться, если вы не расширяете существующий встроенный метод, а этого делать не следует!

Typescript

Для поддержки Typescript добавьте следующий код в корневой уровень вашего сайта.

declare global {
  interface Array<T> {
    print(): T[]
  }
}
Вход в полноэкранный режим Выйти из полноэкранного режима

Теперь вы можете легко вывести результат каждого метода цепочки.

const fruits = [🍌, 🍎, 🍎, 🍍, 🍌, 🥝, 🥝, 🥝]
const result = fruits
                     .filter(emoji => [🥝, 🍌].includes(emoji))
                     .print() // [🍌, 🍌, 🥝, 🥝, 🥝]
                     .map(emoji => emoji === 🍌 ? 🍋 : emoji)
                     .print() // [🍋, 🍋, 🥝, 🥝, 🥝]
Войти в полноэкранный режим Выход из полноэкранного режима

Выглядит чисто и аккуратно!

Есть много вещей, которые вы можете сделать в функции печати, например, префиксную строку, чтобы вам было легче искать и отлаживать. Или, может быть, вы хотите отключить печать в производственном режиме. Я оставлю это на ваше усмотрение.

Делайте ❤️, если это поможет! Надеюсь, вам понравится.

Оцените статью
devanswers.ru
Добавить комментарий