Avatar ·

Как работать со строками в JavaScript?

Всем привет! Работаю с Node.js и столкнулся с проблемой обработки строк. Нужно реализовать функцию, которая принимает массив строк и возвращает отформатированный вывод: объединить строки через запятую, но последний элемент должен отделяться союзом "и". Например: ['яблоко', 'банан', 'апельсин'] → 'яблоко, банан и апельсин'.

Пробовал использовать Array.prototype.join(', '), но он добавляет запятую перед последним элементом, а нужно заменить её на " и". Пытался написать вручную через цикл for с проверкой индекса, но код получается громоздким и не учитывает краевые случаи (пустой массив, один элемент).

Вот мой текущий код:

function formatList(arr) {
  if (arr.length === 0) return '';
  if (arr.length === 1) return arr[0];
  let result = '';
  for (let i = 0; i < arr.length; i++) {
    if (i === arr.length - 1) {
      result += ' и ' + arr[i];
    } else {
      result += arr[i] + ', ';
    }
  }
  return result;
}

Ожидаю, что есть более элегантное решение на JavaScript, возможно, с использованием slice, pop или reduce. Как правильно и кратко реализовать такую форматировку? Заранее спасибо за советы!