はじめに
この実験では、JavaScript において文字列を空白で切り詰める概念を探ります。空白を尊重することで、文字列の読みやすさを保ちながら、その長さを制限する方法を学びます。String.prototype.slice() と String.prototype.lastIndexOf() の実装を通じて、指定された長さまで文字列の切り詰めを行い、任意のエンディングを付けることができる関数を作成します。
この実験では、JavaScript において文字列を空白で切り詰める概念を探ります。空白を尊重することで、文字列の読みやすさを保ちながら、その長さを制限する方法を学びます。String.prototype.slice() と String.prototype.lastIndexOf() の実装を通じて、指定された長さまで文字列の切り詰めを行い、任意のエンディングを付けることができる関数を作成します。
コーディングを練習するには、ターミナル/SSH を開き、node と入力します。
以下は、可能な限り空白を尊重しながら、指定された長さまで文字列を切り詰める関数です。
const truncateStringAtWhitespace = (str, lim, ending = "...") => {
if (str.length <= lim) return str;
const lastSpace = str.slice(0, lim - ending.length + 1).lastIndexOf(" ");
return str.slice(0, lastSpace > 0 ? lastSpace : lim - ending.length) + ending;
};
この関数を使用するには、切り詰めたい文字列を最初の引数に、最大長を 2 番目の引数に、任意のエンディング文字列を 3 番目の引数に渡します。文字列の長さが指定された制限以下の場合、元の文字列を返します。それ以外の場合、関数は制限より前の最後の空白を見つけ、そこで文字列を切り詰め、指定されている場合はエンディング文字列を追加します。
以下はいくつかの例です。
truncateStringAtWhitespace("short", 10); // 'short'
truncateStringAtWhitespace("not so short", 10); // 'not so...'
truncateStringAtWhitespace("trying a thing", 10); // 'trying...'
truncateStringAtWhitespace("javascripting", 10); // 'javascr...'
おめでとうございます!空白で文字列を切り詰める実験を完了しました。スキルを向上させるために、LabEx でさらに多くの実験を行って練習してください。