• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JavaScriptの配列について)

JavaScriptの配列を使用して指定した文字列を変換する方法

このQ&Aのポイント
  • JavaScriptの配列を使用して指定した文字列を変換する方法について説明します。
  • 具体的には、与えられた文字列の各文字に対して、配列の中でその文字の次の文字を取得して変換する方法を利用します。
  • この方法を使うと、与えられた文字列を指定した変換規則に従って変換することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

一文字ずつ評価するのは微妙ですが、まぁこんな感じ <script> var old_array= Array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '<', '#', '/', '>', '%', '.', '*', '0', '!', '?', ':', '=', '|'); var new_array= Array('b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '<', '#', '/', '>', '%', '.', '*', '0', '!', '?', ':', '=', '|'); var old_str='abc_DEF_012'; var new_str=''; for(var i=0;i<old_str.length;i++){ var ss=old_str.substr(i,1); var v=old_array.indexOf(ss); if(v>-1){ new_str += new_array[v]; }else{ new_str += ss; } } alert(new_str); </script>

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

for文でまわすしかないわね。 私なら配列1つ var array = Array('a', 'b', 'b', 'c','c','d, 'd','e'・・・・ '=', '=', '|'); にして var result = array["a"]; で "b" var result = array["c"]; で "e" var result = array["1"]; で "2" のような連想配列にするわ。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • JavaScriptの文字のエンコードについて

    フォームの入力欄で、「'」(シングルクォート)を入力してサブミットすると、ブラウザ(Firefox3.5)で見ると「'」と表示されていますが、ブラウザのソースを見るとvalueの¥ところには、「'」と表示されています。 これは、PHPでエンコードされているせいなのですが、 PHPでエンコードされた「'」を、JavaScriptを使って、ブラウザからソースを見たときに「'」と表示できるでしょうか? ソースは、こんな感じで書いたのですが、動作しませんでした........。 function chChar(){ var keyValue = document.getElementById("delete_key").value; var ascii = new Array(' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F','G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~'); var htmlChar = new Array(' ', '!', '"', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~'); var re = new RegExp(htmlChar); if(keyValue.match(re)){ for(i=0; i<ascii.length; i++){ keyValue = keyValue.replace(htmlChar[i], ascii[i]); } } return keyValue; }

  • 変換テーブルを使った、文字列置換[JavaScript]

    以下のような、変換テーブルがあるとします。 var ascii = [' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F','G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~']; var htmlChar = [' ', '!', '"', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~']; ブラウザの「ソースを見る」で、ソースを見るとHTMLのフォームのテキスト入力フィールドのvalueに特殊文字コード「'」と表示されているとします。 例;ブラウザの「ソースを見る」で、ソースを見た場合: <input type="text" value="'" /> これを変換テーブルを使って、ブラウザの「ソースを見る」で、ソースを見たときに、特殊文字(' なら '(シングルクォート)に表示させたいのですが、可能でしょうか? 変更後の例;ブラウザの「ソースを見る」で、ソースを見た場合: <input type="text" value="'" />

  • 多次元配列の初期化

    多次元配列の初期化を行いたいのですが、 下記の方法では、配列の値が多くなったときに大変 なので他に良い方法はありませんでしょうか? char lesson[7][6] = { {'A', 'B', 'C', 'D', 'E', 'F'}, {'G', 'H', 'I', 'J', 'K', 'L'}, {'M', 'N', 'O', 'P', 'Q', 'R'}, {'S', 'T', 'U', 'V', 'W', 'X'}, {'Y', 'Z', 'a', 'b', 'c', 'd'}, {'e', 'f', 'g', 'h', 'i', 'j'}, {'k', 'l', 'm', 'n', 'o', 'p'}, };

  • 順列・数え上げ

    よろしくお願いします。 ここに下のような390個の文字があります。 (A,B,C,D,E,F,G,H,I,J,K,L,M がそれぞれ10個ずつ、 N,O,P,Q,R,S,T,U,V,W,X,Y,Z がそれぞれ20個ずつあります。) この390個の文字から235文字を選んで一列に並べる方法は全部で何通りありますか。 A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z N O P Q R S T U V W X Y Z 以下、私が考えたことを書きます。 この390個の文字から235個の文字を選ぶ組み合わせの総数は、 (Σ[k=0~10]x^k)^13*(Σ[k=0~20]x^k)^13 を展開したときのx^235の係数ですから、 23463540513956137996043929988 通りだということは分かります。 この23463540513956137996043929988 通りのそれぞれについて235個の文字 の順列(同種のものを含む順列)を数え上げれば答えは出ると思いますが、これは あまりにも大変な作業です。 何かよい知恵はないでしょうか。

  • エクセルでどうしてもVALUEになります。

    宜しくお願いします。 ちょっと長いですが N18  に =IF(AND(OR(D18="",D18=0),E18="",H18="",J18=""),"",D18+E18-F18-H18-J18-K18-M18) X18 に =IF(AND(OR(N18="",N18=0),O18="",R18="",T18=""),"",N18+O18-P18-R18-T18-U18-W18) Y18 に 数値 25,000を入れると AH18 の =IF(AND(OR(X18="",X18=0),Y18="",AB18="",AD18=""),"",X18+Y18-Z18-AB18-AD18-AE18-AG18) がVALUEになります。 どうしたら、数式の意味を変えずにエラー回避できるのでしょうか?

  • C言語で2次元配列の引数定義やコピーの仕方など

    2次元配列の引数の定義や渡し方や ある変換する関数で、すべて' '(スペース)にしたり[memmoveなど1命令で]や、 それぞれ一つ違う値 A->B, O->Pに置き変える関数しようとしているのですが、 C言語のデータ操作に非常に疎く、どのようにすれば良いかわかりません。 どのようにすれば良いのでしょうか? 環境はWindowsで VisualC++6.0です。 GCCもソースを変えずに同じように出来るのでしょうか? #include <stdio.h> char lesson[7][6] = { {'A', 'B', 'C', 'D', 'E', 'F'}, // MON {'G', 'H', 'I', 'J', 'K', 'L'}, // TUE {'M', 'N', 'O', 'P', 'Q', 'R'}, // WED {'S', 'T', 'U', 'V', 'W', 'X'}, // THU {'Y', 'Z', 'a', 'b', 'c', 'd'}, // FRI {'e', 'f', 'g', 'h', 'i', 'j'}, // SAT {'k', 'l', 'm', 'n', 'o', 'p'}, // SUN }; // --- 多次元配列の引数の渡し方がわからないのでvoid --- void print_data(void) { for(int i=0; i < 7; i++){ for(int j=0; j < 6; j++){ printf("%c ", lesson[i][j]); } printf("\n"); } } // --- 問題の変換関数(引数定義と内容 --- int convert(????) { ???? } // --- メイン --- int main(boid){ print_data(); conver(???); // <--- どのように引数に渡すのか? print_data(); return 0; }

  • 【Ruby】n=2;eval$s=%q{Z=?\s

    【Ruby】n=2;eval$s=%q{Z=?\s;eval"$><<S=Z*4"+(%w{+"n=#{-~n%3};eval$s=%q{#$s}#YE";$>.isat ty&& (r="\e[43;3#{C="#{n*5%9+1}m"}#{T}\e[4"+C+S[1568,79]+E="\e[0m";r[81,21]="\e[37m# {(["Ca f\u00e9_au_lait","Yogurt","Fruit_mix"][n].chars*Z).tr(?_,"").center(21)}\e[3"+C ;a=%~POS A[`ER]`PASX1cTc22V6NNP.QOYGMXXIG7KK:bCCaVN8WZ[]UQMMS`cBFFJJHHY`QTUIUURRPTOcRV_a LLUT`WXL W]a_c_bV`XXYa_9}+[T=' B A L A N C E D F O O D ']*0+%w{bZZYb_][9cc ????`9^acG G,,N9DU`DKcUKU3K4!4!4!QXTSSS""9`9`#U`KcK--S;;/GOT<QE$U=>F==Q0@%U/P/B=S0Q`PM&XVV V15CMRHMSH RKO>==QMQVR 'b`&DK>BS<XE$T>T33DDDUM<V@@E(((TCT0A<0A"')5CXPcQa54X@@Y#KcK--S;; /GOT<Q`$)T)T :a4A%%#X VS6a ' b`&DK>BS<T7**] ^^b6+++]~; P=Str uct.new(:x,:d,:p,:v );M=(-5**7.. b=0).m ap{[]};A=s =[];t=Time.now;q=?y.succ;( s=S .scan(/.+/ );M[0]<<P [25i-b%3*5i- 9,0,0 ,2+1 i] ;6 0.t ime s { |i |j= i %2 0 ;i< 40 ? [ M[j -1],m=M[j],M [j+1 ]]. ea ch {| n| m. ea ch {| p| n. ea ch {| q| d=p .x -q .x ;w=d.abs-4;w <0& &( i<2 0? p. d+= w *w: p. p+= w *( d *(3 -p. d- q.d) +(p.v-q.v)*4 )/p .d )} } } :M . shif t .ea c h{ |p| y, x= ( p. x+= p.v +=p.p/10).re ct; p.p = [4 3- b/9 .0-y,1 ]. m in- [x,p .d=0 , x -9 2].s ort[1]*2i;p. v/=[ 1,p.v.a bs/2].max;M[20-j+[0 ,(x+ 4).div(5 ),19].sort[1]]<<p;35.tim es{|w|v=x.to _i-3+w %7;c=s[w=y.div(2)-2+ w/7];(x-v)**2+(y-w*2)**2<16&&0<=w&&c &&(k=(w*2-21 )**2/99)<=v&&c[v]&&k+79!=v&&c[v]=q}}};(24-b/18..21).map{|k|s[k]=Z*(k=(k*2-21)** 2/99)+q*79 +Z+q*2*(6-k)};s*="\e[B\r";" Your favorite flavor ";b+=1;A<<"\e[A\r"*21+s.gsub (/\172+/){ "\e[43m"+$&.tr(q,Z)+E})while+s.count(q)<1950;A.map{|q|sleep([t-Time.now+3,2e-2] .max);$> <<s=q};$><<s.gsub(?m,";33m").gsub(Z){S.slice!(/./)};b=?]*33.upto(91){|i|a=~/../ ;a=$'.gs ub(i.chr,$&)}*2;Z<<8;(b+a.gsub(?^,"^]"*41)+b).bytes{|c|c-=86;c<8?sleep(3e-2):$> <<(c<( 'CalorieMate-Liquid-Quine';9)?r.slice!(/\e.*?m|./):c>9?"\e[%X"%c:Z)});puts})*"" }#YE 質問 これを実行すると結果は何と表示されますか? オンラインエディタ上で実行しても何も結果がコンソール画面に表示されませんでした。 これはルビーコードではないのですか?どういう意味が含まれているソースコードですか?

    • ベストアンサー
    • Ruby
  • ちょっとした問題作ってみました♪暇つぶしに考えてみてください。

    とある学校のとあるクラスの今朝のことです。 A君からZ君までそれぞれの証言をもとに,教室に早く来た順番を答えてください。なお,これは朝の会(?)の出席確認が行われるまでの時間です。 A:Rの方が早かったですよ。 B:僕の次にGが来ました。 C:Oと一緒に来ました。 D:順番なんてどうでもいいじゃん。 E:Gの次に来ました。 F:Zより早く来ました。 G:13番目か14番目か・・・そのくらいに来ましたでしたね。 H:Lの次の次に来ましたね。 I:Nがトップ3なら僕はワースト3ですね(笑 J:Rよりは早かったです。 K:けっこう早く来たほうですかね。 L:Hの前の前に来ましたね。 M:最後の方でしたね。ほとんどみんな来てました。 N:一番乗りだと思ったけど誰かいましたね。 O:トップ3に入りました。 P:遅刻したかと思ったけどギリギリ間に合いました。 Q:僕が来たときにはすでに4人いました。 R:上から7番目か下から7番目です。 S:朝寝坊しちゃいました。 T:Zなら僕が来た時にはすでにいましたので,確か10番目以内ですよ。 U:数式で表すなら“Z<僕<T”といったところでしょうか(笑 V:Kの次に来ました。 W:僕の後にIが来ました。 X:来たら誰もいませんでした。 Y:LとHにはさまれちゃいましたね。 Z:あぁ~よく分からん。 DとZについては証言無しということで解釈してください。 Uの証言の“Z<僕<T”というのはZ→U→Tの順で来たという意味です。 では解いてみてください。

  • 平均情報量を求める問題ですが。。。。

    大学で情報処理の授業を取っているのですが、数学苦手なので全く解き方が分かりません。ご存知の方ぜひ助けていただきたいです。 ありがとうございます 問題です: a:8.1% b:2.3% c:4.6% d:3.5% e:12.6% f:2.6% g:2.0% h:4.4% i:7.9% j:0.5% k:0.5% i:4.0% m:3.2% n:6.1% o:7.2% p:2.4% q:0.7% r:5.7% s:6.0% t:8.5% u:2.9% v:1.2% w:1.0% x:0.9% y:1.0% z:0.2% アルファベットの出現の確率の平均情報量を求めよ

  • 20名で1対1で話し合う研修を6回でやる方法

    20名で行う研修で1対1で話し合う研修を合計6回でやろうとしています。 10人が誰かと話し合い、合計59組の組み合わせを6回の間で やる方法がどうしてもわかりません。 どなたか教えてください。 ちなみに組み合わせは決まっており(以下のとおりです)その組み合わせを6回以内に効率よくやりたいと思ってます。 ちなみに3回まではアナログ的なやり方で10組ずつ話し合える組み合わせはわかったのですが、 それ以降が頭がぐちゃぐちゃになってわかりません。 組み合わせは以下のとおりです。 AさんとGさん、BさんとJさん、CさんとMさん、LさんとEさん、PさんとQさん、IさんとNさん、GさんとRさん、GさんとSさん、LさんとFさん、 MさんとOさん、TさんとNさん、DさんとEさん、EさんとSさん、AさんとTさん、BさんとHさん、CさんとFさん、JさんとTさん、HさんとMさん、 FさんとQさん、TさんとOさん、AさんとNさん、BさんとEさん、CさんとKさん、JさんとKさん、HさんとKさん、DさんとTさん、IさんとOさん、 GさんとPさん、LさんとNさん、MさんとPさん、EさんとQさん、AさんとSさん、BさんとPさん、CさんとOさん、JさんとPさん、HさんとSさん、 DさんとKさん、IさんとPさん、LさんとSさん、AさんとRさん、BさんとRさん、CさんとQさん、JさんとRさん、HさんとRさん、DさんとSさん、 IさんとQさん、LさんとOさん、BさんとQさん、DさんとOさん、LさんとRさん、JさんとMさん、HさんとIさん、DさんとGさん、IさんとKさん、 GさんとFさん、MさんとNさん、EさんとFさん、FさんとTさん、KさんとNさん の計59通りです。 お力添え何卒よろしくお願いしますm(_ _)m この回答とプラスその算出方法も合わせて教えていただけると幸いです。

このQ&Aのポイント
  • Windows11のパソコンを購入して初めての更新プログラムが発表されたようですが、更新プログラムが自動で行われることに疑問があります。
  • アップデートの詳細の設定や通知に関して、初期設定やオフになっている項目でも通知が来ることがあるのか疑問です。
  • また、アップデート詳細オプションのアクティブ時間は自動で変更されるのか、どのような基準で設定されるのか知りたいです。
回答を見る

専門家に質問してみよう