初歩的な質問で申し訳ありません。
変数内などにある文字を、1つ1つ取得する方法についてなのですが、そのためにはsplit()などで分割してから取得しなければならないと思っていたのですが、ダイレクトに文字を配列みたいに取得できるのですか?
ですか??といいますかできたので驚きなのですが…。
仮に
<div id="hoge">
あいうえお
</div>
とありました場合、
<script>
const hoge = document.querySelector("#hoge").innerHTML;
for(let v of hoge) {
console.log(v);
}
</script>
みたいな感じで各あいうえおという文字を分割してそれぞれ取得できるのですが…?
イメージ的には、「あいうえお」は1つの文字列として、あいうえおとして取得されそうなものなのですが、これが「あ,い,う,え,お」として取得されるのに驚きです。
これはJSの仕様というか、こんなものなのでしょうか?
質問も上手くできないのですが、なんとなく理解いただけると幸いです。
とにかくメソッド使わなくても各文字を分割取得できるのが不思議な限りです、、アドバイス宜しくお願いいたします。
No.4ベストアンサー
- 回答日時:
はい、悩ましい質問ですね。
JavaScriptでは文字列は、内部的には文字の配列として扱われています。そのため、文字列はfor...of文を使用することで、文字を1文字ずつ取得することができます。
上記の例でいうと、
const hoge = document.querySelector("#hoge").innerHTML;
for(let v of hoge) {
console.log(v);
}
このように、for...of文を使用することで、hoge変数に格納された文字列を1文字ずつ取得することができます。
このように、JavaScriptでは文字列にも配列のような振る舞いをすることができますが、実際には文字列型と配列型は別々のものですので注意が必要です。
有難うございます。
>>このように、for...of文を使用することで、hoge変数に格納された文字列を1文字ずつ取得することができます。
はい、for of を使う際にこの現象が発生するようです。
使用なのかバグ的なものなのかわかりませんが、配列の際はきちんと配列で定義しようと思います。
有難うございました。
No.3
- 回答日時:
文字(character)を配列みたいに並べたものが、文字列(string)です。
参考)
https://dictionary.goo.ne.jp/word/en/character/
https://dictionary.goo.ne.jp/word/en/string/
一般的な言語では文字と文字列は別扱いなのですが、
JSでは簡略化のためか文字列しか扱えないようになっています。
No.1
- 回答日時:
今時のJavaScriptならできるけど、昔のJavaScriptならできなかったような。
もはや覚えてない。
仕組みとしては下記URLの資料とか。
https://developer.mozilla.org/ja/docs/Web/JavaSc …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- Excel(エクセル) Excelのマクロで、特定のセルから順番に値を取得したい 5 2022/12/06 15:34
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP PHPを使って、別サイトの一部を取得して表示したいのです。。 1 2023/01/18 21:45
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでActiveDirectoryのユーザ...
-
ListView 項目の選択/選択解除...
-
VB.NETで DataRow()を利用して...
-
count(*)で取得した値をJAVAの...
-
VBA:小数点以下の数字を取得で...
-
Flexgridで選択行の列の値を取...
-
データ数をカウントしたいのですが
-
ディスプレイの表示可能な解像...
-
COMポート 名前を取得する方法
-
JavaScriptでWindowsログオンID...
-
like演算子内に変数って使えな...
-
C言語におけるコンピュータ名・...
-
年月日時分秒の変数を教えて下さい
-
Yahoo! JAPANのID取得について
-
getParameter と getAttribut...
-
アクセスしてきたコンピュータ...
-
エクセルVBAで複数選択できるよ...
-
URIでのページの移動について
-
Active directoryの全グループ取得
-
NTPサーバから時刻を取得する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでActiveDirectoryのユーザ...
-
VB.NETで DataRow()を利用して...
-
ListView 項目の選択/選択解除...
-
VBA:小数点以下の数字を取得で...
-
count(*)で取得した値をJAVAの...
-
データ数をカウントしたいのですが
-
like演算子内に変数って使えな...
-
ListViewで複数選択された項目...
-
Flexgridで選択行の列の値を取...
-
エクセルVBAで複数選択できるよ...
-
JavaScriptでWindowsログオンID...
-
利用者側のMACアドレスを取得し...
-
郵便番号検索APIにてget Elemen...
-
COMポート 名前を取得する方法
-
コンボボックス表示文字列を取...
-
VBA Shapesの座標からセル位置...
-
Spreadの選択行の取得について
-
VBScriptで数値にコンマを付け...
-
C言語におけるコンピュータ名・...
-
Excel VBA でログインしてい...
おすすめ情報