前回のJavaScriptの配列で、特定の要素の数を調べる方法の続きです。
JavaScriptの配列で、任意の文字列に置換する。
文字列を使う方法と、変数を使う方法の2種類があります。
文字列を使って置換する
配列の変数名.splice(置換したい場所、そこから何個分、文字列);を使います。今回のプログラムでは、置換したい場所は2=ゾンビの要素数のときなのでiを、1つだけ置換するなので1を、文字列にゾンビを代入しています。
javascript_array.splice.js
<script type = "text/javascript">
var zombiArray = [0,1,0,1,2,0,0,1];
for (var i = 0; i < zombiArray.length; i++) {
if(zombiArray[i] == 2){
zombiArray.splice(i,1,'ゾンビ');//配列は、正規表現NG。splice(置換したい場所、そこから何個分、文字列)
}
/*document.write(zombiArray[i]+"");//1要素ごとに表示する。for文の中、if文の外。*/
}
//-->
ポイント
1、JavaScriptの配列では、正規表現が使えない。
javascript_array.replace_str.js
<script type = "text/javascript">
var zombiArray = [0,1,0,1,2,0,0,1];
for (var i = 0; i < zombiArray.length; i++) {
zombiArray = zombiArray.replace(/2/,g,'ゾンビ');
document.write(zombiArray[i]+"");
}
//-->
置換というと、正規表現でマッチした要素を置換していくと考えられるのですが、配列には使えないということがわかりました。そこで、配列で正規表現っぽく使うのがspliceです。全般的な使い方は、こちらです。
正常に動作していれば、
0101ゾンビ001
と表示してくれます。
変数を使って置換する
配列の変数名.splice(置換したい場所、そこから何個分、変数)でも、置換することが可能です。
javascript_array.splice_hensu.js
<script type = "text/javascript">
<!--
var zombiArray = [0,1,0,1,2,0,0,1];
var zombidayo = 'ゾンビ';
for (var i = 0; i < zombiArray.length; i++) {
if(zombiArray[i] == 2){
zombiArray.splice(i,1,zombidayo);//splice(置換したい場所、何個分、変数)
}
document.write(zombiArray[i]+"");
}
//-->
まとめ
JavaScriptの配列では、正規表現を使うことができないことが勉強になりました。それと、いろいろやってみることで、文字列だけでなくて変数も置換できることを発見したり、やってみて良かったなと思いました。