LoginSignup
8
10

More than 5 years have passed since last update.

JavaScriptの配列で、特定の要素の時だけ置換をする2つ方法

Posted at

前回の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の配列では、正規表現を使うことができないことが勉強になりました。それと、いろいろやってみることで、文字列だけでなくて変数も置換できることを発見したり、やってみて良かったなと思いました。

8
10
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10