🎫
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
というタグ付きテンプレートを作ってください。配列は使いたかったら使ってください。
[['<', '<'], ['>', '>'], ['&', '&'], ['"', '"'], ["'", ''']]
// コードを書いてね。
let content = 'ねこ & 「>"_"<」',
author = "'都会バト'";
console.log(encodeHTML`<p>${content}</p><footer>${author}</footer>`);
// > <p>ねこ & 「>"_"<」</p><footer>'都会バト'</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