7 способов объединить строки в JavaScript с помощью «и» в последнем элементе

В JavaScript объединение строк — это распространенная операция, позволяющая объединить несколько строк в одну. Добавление слова «и» в последний элемент строки может быть полезно в различных сценариях, например при создании предложений на естественном языке или создании грамматически правильных списков. В этой статье мы рассмотрим семь различных методов достижения этой цели в JavaScript, а также приведем примеры кода.

Метод 1: использование цикла

function joinWithAndLoop(arr) {
  if (arr.length === 0) {
    return "";
  } else if (arr.length === 1) {
    return arr[0];
  } else if (arr.length === 2) {
    return arr.join(" and ");
  } else {
    return arr.slice(0, -1).join(", ") + ", and " + arr[arr.length - 1];
  }
}
const fruits = ["apple", "banana", "orange", "mango"];
const result = joinWithAndLoop(fruits);
console.log(result);

Выход: «яблоко, банан, апельсин и манго»

Метод 2: использование метода Array.prototype.reduce()

function joinWithAndReduce(arr) {
  return arr.reduce((acc, curr, index) => {
    if (index === 0) {
      return curr;
    } else if (index === arr.length - 1) {
      return acc + " and " + curr;
    } else {
      return acc + ", " + curr;
    }
  }, "");
}
const animals = ["dog", "cat", "elephant", "lion"];
const result = joinWithAndReduce(animals);
console.log(result);

Выход: «собака, кошка, слон и лев»

Метод 3: использование метода Array.prototype.join() и манипуляция строками

function joinWithAndJoin(arr) {
  if (arr.length <= 2) {
    return arr.join(" and ");
  } else {
    const lastItem = arr.pop();
    return arr.join(", ") + ", and " + lastItem;
  }
}
const colors = ["red", "green", "blue", "yellow", "orange"];
const result = joinWithAndJoin(colors);
console.log(result);

Выход: «красный, зеленый, синий, желтый и оранжевый»

Метод 4. Использование методов Array.prototype.slice() и Array.prototype.concat()

function joinWithAndSliceConcat(arr) {
  if (arr.length <= 2) {
    return arr.join(" and ");
  } else {
    const lastItem = arr.slice(-1);
    const joinedItems = arr.slice(0, -1).join(", ");
    return joinedItems.concat(", and ", lastItem);
  }
}
const cities = ["New York", "London", "Paris", "Tokyo", "Sydney"];
const result = joinWithAndSliceConcat(cities);
console.log(result);

Выход: «Нью-Йорк, Лондон, Париж, Токио и Сидней».

Метод 5: использование метода Array.prototype.splice()

function joinWithAndSplice(arr) {
  if (arr.length <= 2) {
    return arr.join(" and ");
  } else {
    const lastItem = arr.splice(-1);
    return arr.join(", ") + ", and " + lastItem;
  }
}
const countries = ["USA", "Canada", "Mexico", "Brazil", "Argentina"];
const result = joinWithAndSplice(countries);
console.log(result);

Выход: «США, Канада, Мексика, Бразилия и Аргентина»

Метод 6: использование метода Array.prototype.map() и тернарного оператора

function joinWithAndMap(arr) {
  return arr.map((item, index) => (index === arr.length - 1 ? "and " + item : item)).join(", ");
}
const planets = ["Mercury", "Venus", "Earth", "Mars", "Jupiter"];
const result = joinWithAndMap(planets);
console.log(result);

Результат: «Меркурий, Венера, Земля, Марс и Юпитер»

Метод 7. Использование оператора расширения ES6 и литералов шаблона

function joinWithAndSpread(arr) {
  if (arr.length <= 2) {
    return arr.join(" and ");
  } else {
    const lastItem = arr.pop();
    return `${arr.join(", ")}, and ${lastItem}`;
  }
}
const drinks = ["coffee", "tea", "juice", "water", "soda"];
const result = joinWithAndSpread(drinks);
console.log(result);

Выход: «кофе, чай, сок, вода и газировка»

В этой статье мы рассмотрели семь различных методов соединения строк в JavaScript со словом «и» в последнем элементе. Эти методы включают использование циклов, методов массивов, таких как сокращение, объединение, срез, объединение, сращивание, отображение, а также функций ES6, таких как оператор расширения и литералы шаблонов. Каждый метод имеет свои преимущества и может использоваться исходя из конкретных требований вашего проекта. Используя эти методы, вы можете легко манипулировать строками и создавать грамматически правильные предложения на естественном языке в JavaScript.