JavaScript if文で配列を比較するサンプル

JavaScriptのif文の配列の比較のサンプルです。

目次

配列の比較

  • if文で配列やオブジェクトなどの参照型の変数を比較する場合、参照先(アドレス)が等しいか判定します。
  • 基本型の変数には、値が格納されます。
  • 参照型の変数には、参照先のアドレスが格納されます。値は指定されたアドレスにあります。

 

同じ値の配列を比較する場合

同じ値の配列を比較する場合です。
3行目と4行目は同じ値の配列です。
6行目は、配列の変数を比較しています。参照先が異なるのでif文の判定はfalseになります。

<script>

	var color1 = ['red','yellow','blue'];
	var color2 = ['red','yellow','blue'];

	if (color1 == color2) {
		document.write("OK");
	} else {
		document.write("NG"); //NG
	}

</script>

 

参照先を渡して比較する場合

参照先を渡して比較する場合です。
6行目は、配列の参照先を渡しています(参照渡し)。
8行目は、参照先が同じなのでif文の判定はtrueになります。

<script>
	var color1 = ['red','yellow','blue'];
	var color2 = ['red','yellow','blue'];

	//参照先を渡す
	color1 = color2;

	if (color1 == color2) {
		document.write("OK"); //OK
	} else {
		document.write("NG");
	}
</script>

 

toStringメソッドを使用する

ArrayオブジェクトのtoStringメソッドを使用する場合です。
6行目のtoStringメソッドは、配列の値を文字列にして比較するのでif文の判定はtrueになります。

<script>

	var color1 = ['red','yellow','blue'];
	var color2 = ['red','yellow','blue'];

	if (color1.toString() == color2.toString()) {
		document.write("OK"); //OK
	} else {
		document.write("NG");
	}
</script>

以下は、MDNのArrayオブジェクトのtoStringメソッドのリンクです。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/toString

 

for文を使用する

for文を使用するサンプルです。
8行目のfor文でループさせて、9行目のif文で配列の値を1つずつ比較しています。

<script>

	var color1 = ['red','yellow','blue'];
	var color2 = ['red','yellow','blue'];

	var flg = "一致";

	for (var i = 0; i < color1.length; i++) {
		if (color1[i] !== color2[i]){
			flg = "不一致";
			break;
		}
	}

	document.write(flg); //一致	
</script>

関連の記事

JavaScript if文のサンプル
JavaScript if文の == と === の違いのサンプル
JavaScript 配列を作成するサンプル
JavaScript 配列の値をループで取得するサンプル(for…in文)
JavaScript 配列を操作するサンプル(Arrayオブジェクト)



△上に戻る