JavaScript における文字列を複数形にする

JavaScriptJavaScriptBeginner
オンラインで実践に進む

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、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'

カスタムの複数形の辞書がある場合、与えられた word に対して正しい複数形を自動的に使用する autoPluralize 関数を作成することができます:

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

まとめ

おめでとうございます!あなたは文字列を複数形にする実験を完了しました。あなたのスキルを向上させるために、LabEx でさらに実験を行って練習することができます。