PadEnd: примеры (JAVASCRIPT)

JavaScript padEnd: справочник и практические примеры
Раздел: Строки, Форматирование
padEnd(targetLength, padString?): string

Метод padEnd в JavaScript

Метод padEnd() предназначен для дополнения текущей строки другой строкой до заданной длины. Дополнение происходит с конца (справа) исходной строки. Этот метод полезен для форматирования текста, выравнивания данных в столбцах или подготовки строк фиксированной длины.

Синтаксис метода: str.padEnd(targetLength [, padString]).

  • targetLength (целое число): Целевая длина итоговой строки после дополнения. Если значение меньше или равно длине исходной строки, то строка возвращается без изменений.
  • padString (строка, необязательный аргумент): Строка для дополнения. Если эта строка слишком длинная, она будет обрезана. По умолчанию используется пробел (" ").

Метод возвращает новую строку заданной длины, состоящую из исходной строки, дополненной в конце строкой padString.

Короткие примеры использования

Базовое использование с пробелом по умолчанию:

console.log('abc'.padEnd(10));
"abc       " // Дополнено 7 пробелами до длины 10

Использование пользовательской строки для дополнения:

console.log('123'.padEnd(6, '0'));
"123000"

Случай, когда целевая длина меньше длины строки:

console.log('Длинная строка'.padEnd(5, '-'));
"Длинная строка" // Строка возвращена без изменений

Использование строки, которая будет обрезана при дополнении:

console.log('id'.padEnd(8, 'xyz-'));
"idxyz-xy" // Символы 'xyz-' повторяются и обрезаются

Похожие функции в JavaScript

  • String.prototype.padStart(): Аналогичный метод, но дополняет строку в начале (слева). Используется для выравнивания чисел или текста по правому краю.
  • String.prototype.repeat(): Повторяет строку заданное количество раз. Может комбинироваться с методами slice для ручного дополнения, но менее удобен для точного достижения фиксированной длины.
  • Ручная реализация с циклами: Использование циклов for или while для конкатенации. Метод padEnd является более декларативной и производительной альтернативой.

Метод padEnd предпочтительнее, когда требуется точно достичь заданной длины строки с дополнением справа. padStart используется для дополнения слева, что часто нужно для форматирования чисел.

Типичные ошибки

Передача нецелочисленного значения в targetLength:

console.log('hi'.padEnd(5.7, '*'));
"hi***" // Значение будет приведено к целому числу (5)

Использование пустой строки в качестве padString:

console.log('test'.padEnd(8, ''));
"test" // Дополнение не происходит, возвращается исходная строка

Ожидание работы метода на месте (мутативности). Метод возвращает новую строку:

let str = 'js';
str.padEnd(5, '!');
console.log(str);
"js" // Исходная строка не изменилась

История изменений

Метод padEnd был добавлен в спецификацию ECMAScript 2017 (ES8). Он является частью стандартной библиотеки JavaScript и поддерживается во всех современных браузерах и средах выполнения, таких как Node.js. Существенных изменений в его работе с момента добавления не было. Для поддержки в устаревших средах может потребоваться использование полифила.

Расширенные примеры

Форматирование таблицы с выравниванием по левому краю:

Пример javascript
const items = [
  ['Яблоки', 5],
  ['Апельсины', 12],
  ['Бананы', 8]
];
items.forEach(([name, count]) => {
  console.log(`${name.padEnd(10, '.')} ${count.toString().padStart(3, '0')}`);
});
Яблоки.... 005
Апельсины.. 012
Бананы..... 008

Создание строки-прогресс-бара фиксированной длины:

Пример javascript
function createProgress(percent, length=20) {
  const filled = Math.round(length * percent / 100);
  return `[${'#'.padEnd(filled, '#').padEnd(length, '-')}]`;
}
console.log(createProgress(75));
[###############-----]

Обработка строк с многобайтовыми символами (например, эмодзи). Метод считает длину по кодовым единицам, а не видимым символам:

Пример javascript
console.log('????'.padEnd(3, '_'));
console.log('????????'.padEnd(4, '_'));
"????__" // Эмодзи занимает 2 кодовые единицы
"????????__" // Составной эмодзи занимает 4 кодовые единицы

Использование с числовыми значениями. Число необходимо сначала преобразовать в строку:

Пример javascript
console.log((42).toString().padEnd(5, '0'));
console.log(String(3.14).padEnd(6, '0'));
"42000"
"3.1400"

Аналоги в других языках программирования

Python: Метод str.ljust(). Отличается тем, что принимает строку заполнения длиной ровно в 1 символ.

print('text'.ljust(10, '-'))
text------

PHP: Функция str_pad(). Более универсальная, имеет параметр для выбора стороны дополнения (STR_PAD_RIGHT, STR_PAD_LEFT, STR_PAD_BOTH).

echo str_pad('text', 10, '-', STR_PAD_RIGHT);
text------

C#: Метод PadRight(). Семантика очень близка к JavaScript.

Console.WriteLine("text".PadRight(10, '-'));
text------

SQL (MySQL): Функция RPAD(). Работает аналогично, но является частью SQL-запросов.

SELECT RPAD('text', 10, '-');
text------

JS padEnd function comments

En
PadEnd Pads the current string from the end with a given string to reach a given length