Склонение строк в JavaScript

Beginner

This tutorial is from open-source community. Access the source code

Введение

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

Склонировать строку

Для склонения слова в зависимости от заданного числа используйте функцию pluralize. Для начала откройте Терминал/SSH и введите node. Эта функция может возвращать как единственное, так и множественное число слова в зависимости от входного числа. Также вы можете передать необязательный словарь для использования собственных склонений.

Для определения функции pluralize используйте замыкание, которое принимает word и необязательную форму plural. Если входное значение num равно либо -1, либо 1, верните единственное число слова word. В противном случае верните форму plural. Если не указана собственная форма plural, функция будет использовать по умолчанию единственное число слова word плюс s.

Если первый аргумент является объектом, функция pluralize возвращает новую функцию, которая может использовать переданный словарь для определения правильной формы склонения слова word.

Вот как работает функция pluralize:

const pluralize = (val, word, plural = word + "s") => {
  const _pluralize = (num, word, plural = word + "s") =>
    [1, -1].includes(Number(num)) ? word : plural;
  if (typeof val === "object")
    return (num, word) => _pluralize(num, word, val[word]);
  return _pluralize(val, word, plural);
};

Вы можете использовать функцию pluralize следующим образом:

pluralize(0, "apple"); // 'apples'
pluralize(1, "apple"); // 'apple'
pluralize(2, "apple"); // 'apples'
pluralize(2, "person", "people"); // 'people'

Если у вас есть словарь собственных склонений, вы можете создать функцию autoPluralize, которая автоматически будет использовать правильную форму склонения для заданного слова word:

const PLURALS = {
  person: "people",
  radius: "radii"
};
const autoPluralize = pluralize(PLURALS);
autoPluralize(2, "person"); // 'people'

Резюме

Поздравляем! Вы завершили практическое занятие по склонению строк. Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.