Intl.ListFormat это удобный способ собрать список в строку с учетом локали, без самописных костылей.
onst getMessage = (users) => {
const formatter = new Intl.ListFormat("en-US", {
style: "long",
// long (по умолчанию), short, narrow
type: "conjunction"
// conjunction (and), disjunction (or), unit
});
return `Hello ${formatter.format(users)}!`;
};
// Автоматически подстраивает грамматику
console.log(getMessage(["Alice"]));
// → "Hello Alice!"
console.log(getMessage(["Alice", "Bob"]));
// → "Hello Alice and Bob!"
console.log(getMessage(["Alice", "Bob", "Charlie"]));
// → "Hello Alice, Bob, and Charlie!"
По сути, он сам правильно ставит запятые, союзы и форматирует список в зависимости от языка. Удобнее, чем писать if users.length === 2 ... else ... и поддерживать всё вручную.
@WebDev_Plus