[過去ログ] + JavaScript の質問用スレッド vol.141 + (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
227
(3): 215 (ワッチョイ 7e8f-XC/u) 2019/07/14(日)09:25 ID:c8hg/KPq0(1/11) AAS
>>225
コードに突然0xなんちゃらと現れても大抵の人はそれが何を示しているのか分からない
だから”A”の文字コードは事前に'A'.codePointAt()などで求めておいて定数に格納しておく

1行目、ものすごく驚きました
EBCDIC を採用するかどうかが実装依存だというならともかく

https://www.ecma-international.org/ecma-262/10.0/#sec-terms-and-definitions-string-value

> 4.3.17 String value
>
> primitive value that is a finite ordered sequence of zero or more 16-bit
> unsigned integer values
省12
228
(1): 215 (ワッチョイ 7e8f-XC/u) 2019/07/14(日)09:31 ID:c8hg/KPq0(2/11) AAS
> だから”A”の文字コードは事前に'A'.codePointAt()などで求めておいて定数に格納しておく

定数に格納するなら、私だったら

/*
0x41 LATIN CAPITAL LETTER A
0x61 LATIN SMALL LETTER A
0x
*/

const int_codePointAtA = 0x41

/*
0x5a LATIN CAPITAL LETTER Z
省7
229: 215 (ワッチョイ 7e8f-XC/u) 2019/07/14(日)09:32 ID:c8hg/KPq0(3/11) AAS
>>223
> プログラム板に別解があるようだが、あれで満足?

うーん
どこからどう見ても練習問題なのに…
230
(1): 215 (ワッチョイ 7e8f-XC/u) 2019/07/14(日)09:33 ID:c8hg/KPq0(4/11) AAS
>>224
> アンケート系は勘弁して欲しいな…

具体的なコードが複数あるなら「アンケート」と呼ぶ余地はあるかも知れませんが
今回のコードは具体的なモノが1つしか無いので「アンケート」と呼ぶ余地はないですよ
231: 215 (ワッチョイ 7e8f-XC/u) 2019/07/14(日)09:36 ID:c8hg/KPq0(5/11) AAS
>>220
> 大文字小文字のアルファベットしか入力されないの?

回答例からみて、そう判断しました。
もちろん

https://unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT
https://unicode.org/Public/MAPPINGS/ISO8859/8859-2.TXT
https://unicode.org/Public/MAPPINGS/ISO8859/8859-3.TXT
https://unicode.org/Public/MAPPINGS/ISO8859/8859-4.TXT
https://unicode.org/Public/MAPPINGS/ISO8859/8859-5.TXT
https://unicode.org/Public/MAPPINGS/ISO8859/8859-7.TXT
省7
232: 215 (ワッチョイ 7e8f-XC/u) 2019/07/14(日)09:38 ID:c8hg/KPq0(6/11) AAS
> 別解

for (let i = 0; i < length; i++) {
const char_code = str.charCodeAt(i)
if ((0x41 <= char_code) && (char_code <= 0x5a)) {
str_result += String.fromCharCode(char_code + 0x20)
} else {
str_result += String.fromCharCode(char_code)
}

という部分について、他にどのような考え方があるか分かれば
色々な場面で応用が利くと考え、質問した次第です。
233: 215 (ワッチョイ 7e8f-XC/u) 2019/07/14(日)09:39 ID:c8hg/KPq0(7/11) AAS
>>220
> チェックもせずにテーブルで変換とかも容易にできると思うけど

> もしくは適当でいいのならreplace使ったりしても良いんじゃないの?

チェックの点は見落としていました
御指摘、ありがとうございます

「Acute 等がついていてサロゲートペアでない」場合を含めてチェックすべきかも知れないですね
234
(2): 215 (ワッチョイ 7e8f-XC/u) 2019/07/14(日)09:45 ID:c8hg/KPq0(8/11) AAS
>>220
> どうしてそういうコードを書いたほうが良いと思ってるのか

古典BASICで言うところの MID$() 関数で1文字ずつ抜き出して FOR ループで回し、
条件分岐で ASC() → CHR$() というのがが真っ先に思いついたからです。

「良いと思った」というよりも、Javascript をメインで使っている人が
自然に思いつくコードを知りたいという思いがありまして。

それこそ、大抵の人はこのような発想を自然にはしないと考えられたのです。
「こういうコードを書いたほうが良いと思ってる」というよりはむしろ「『私は』自然に『思いついた』のです」
235: 215 (ワッチョイ 7e8f-XC/u) 2019/07/14(日)09:47 ID:c8hg/KPq0(9/11) AAS
>>227
codePointAt() メソッドは存じませんでした。
acute 等の The Unicode Standard Combining Diacritical Marks を含め、挙動等を確認してみます

参照:
Combining Diacritical Marks
http://www.unicode.org/charts/PDF/U0300.pdf
236: 215 (ワッチョイ 7e8f-XC/u) 2019/07/14(日)09:48 ID:c8hg/KPq0(10/11) AAS
>>225
> for-ofで文字を取り出す

これも全く思いつきませんでした
String.length 等も含め、挙動を確認してみます
237: 215 (ワッチョイ 7e8f-XC/u) 2019/07/14(日)10:27 ID:c8hg/KPq0(11/11) AAS
【補足】

>>234
> 「『私は』自然に『思いついた』のです」

だからこそ 0x61 等が即値
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.217s*