2011年7月3日日曜日

JavaScript 配列の比較(要素ごとにやらないといけないらしい)

Pythonだと余裕で出来た気がするんだけど、javascritpだと配列の比較は、要素ごとにやらないといけないんすかね。
何かいい方法あったら教えてください。

<script type="text/javascript">
var a = [0,1];
var b = [0,1];

//これだと違うよになる。
if(a == b)  alert('同じだよ');
else alert('違うよ');

//これなら同じだよになる。
if(a[0] == b[0] && a[1] == b[1])  alert('同じだよ');
else alert('違うよ');
</script>

配列の比較関数をつくるとしたらこんな感じでしょうか?


<script type="text/javascript">
var a = [0,1];
var b = [0,1];
var c = [0,1,2];

var array_compare = function(a1,a2){
  if(a1.length != a2.length) return false;
  else{
   for(var i=0; i<a1.length; i++){
    if(a1[i] != a2[i]) return false; 
   }
   return true;
  }
 }

//同じだよになる
if(array_compare(a,b)) alert('同じだよ');
else alert('違うよ');

//違うよになる
if(array_compare(a,c)) alert('同じだよ');
else alert('違うよ');
</script>

0 件のコメント:

コメントを投稿