返回介绍

pluralize - 基于输入数字返回单词的单数或复数形式

发布于 2019-05-30 01:44:55 字数 1043 浏览 1187 评论 0 收藏 0

基于输入数字返回单词的单数或复数形式。如果第一个参数是一个 object,那么它将使用一个闭包来返回一个函数,该函数可以自动实现多个单词,如果所提供的字典包含这个单词,它不会简单地以 s 结尾。

如果 num-1 或者 1,返回单词的单数形式。如果 num 是任何其他数字,返回复数形式。忽略第三个参数 plural,默认使单词 + s,或在必要时提供自定义的复数单词。如果第一个参数是一个 object ,则通过返回一个函数来使用闭包,该函数可以使用提供的字典来解析单词的正确复数形式。

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(0, 'apple'); // 'apples'
pluralize(1, 'apple'); // 'apple'
pluralize(2, 'apple'); // 'apples'
pluralize(2, 'person', 'people'); // 'people'

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文