🎫

JS演習 文字列 ★1~4

に公開

こんばんは。今日は文字列の問題です。現実的な関数が多いので自信があります。正規表現もあります。じゃあ頑張ってください。

最後の文字 ★☆☆☆☆

文字列の最後を返す関数を作ってください。ふつうは関数にする程でもないです。

// コードを書いてね。
console.log(getLast('JavaScript'));// > 't'
console.log(getLast('JS'));// > 'S'
console.log(getLast('meow '));// > ' '
console.log(getLast(''));// > undefined
ヒント 位置から文字を取得

文字列から何文字目の文字を抜き出してみます。''[位置ー1]と書く事でその位置の文字がわかります。

'JavaScript'[0];// -> 'J'
'JavaScript'[4];// -> 'S'
'JavaScript'[6];// -> 'r'
'JavaScript'[12];// -> undefined
'JavaScript'[-2];// -> undefined
// 文字数は0からカウント

''.at()を使うと後ろから調べる事も出来ます。

'JavaScript'.at(6);// -> 'r'
'JavaScript'.at(-2);// -> 'p'
'JavaScript'.at(-6);// -> 'S'
'JavaScript'.at(10);// -> undefined
'JavaScript'.at(-12);// -> undefined
'JavaScript'.at()
-10 -9  -8  -7  -6  -5  -4  -3  -2  -1   0   1   2   3   4   5   6   7   8   9
'J' 'a' 'v' 'a' 'S' 'c' 'r' 'i' 'p' 't' 'J' 'a' 'v' 'a' 'S' 'c' 'r' 'i' 'p' 't'

文字の場所 ★★★☆☆

見つけたい文字のある場所を配列で返してください。

// コードを書いてね。
console.log(getIndices('JavaScript', 'a'));// > [2, 4]
console.log(getIndices('Elephant', 'e'));// > [1, 3]
console.log(getIndices('lots of balloons', 'lo'));// > [1, 12]
console.log(getIndices('none', 's'));// > []
ヒント 正規表現

文字の置換とタグ付きテンプレート? ★★★★☆

encodeHTMLというタグ付きテンプレートを作ってください。配列は使いたかったら使ってください。

[['<', '&lt;'], ['>', '&gt;'], ['&', '&amp;'], ['"', '&quot;'], ["'", '&apos;']]
// コードを書いてね。
let content = 'ねこ & 「>"_"<」',
    author = "'都会バト'";
console.log(encodeHTML`<p>${content}</p><footer>${author}</footer>`);
// > <p>ねこ &amp; 「&gt;&quot;_&quot;&lt;」</p><footer>&apos;都会バト&apos;</footer>
ヒント タグ付きテンプレート

特別な関数の一種です。func``という形で使えます。

function tag(strArr, ...tempLiteral) {
    console.log(strArr);
    // ${}で囲っていない文字
    console.log(tempLiteral);
    // ${}で囲った文字

    let result = strArr[0];
    for (let i = 1; i < strArr.length; i++) {
        result += tempLiteral[i - 1] + strArr[i];
    }
    console.log(result);
}

tag`3 + 4 = ${3 + 4}
7 - 2 = ${7 - 2}`;

/* コンソール
* ['3 + 4 = ', '\n7 - 2 = ', '']
* [7, 5]
* 3 + 4 = 7
* 7 - 2 = 5
*/

Discussion