トップページ > JavaScript > クラスライブラリ集 > 配列操作
 
配列操作
ver.1.0
<機能と特徴>
配列操作用のメソッド集

shiftやpopなどが古めのブラウザにも対応可能。

またJavaScriptではサポートされていないgrep()も使用可能になります。
   
インフォメーション


公開日 2005.1.18
最終更新日 ---
バージョン ver 1.0
動作確認
IE5.0 IE6.0 NN4.7 NN6.2 NN7.0
Opera7.5 FireFox1.0
取扱難易度 ★☆☆☆☆難易度1
cookie 不使用
CSS 不使用
更新履歴
---
 
リファレンス

 
ソース

<script language="JavaScript" type="text/javascript">
<!--
//copyright(C) 2005 あう http://www5c.biglobe.ne.jp/~horoau/
//ver1.0

//shiftオーバーライド
Array.prototype.shift = function ()
{var res     = this[0];
 for(var i=1;i<this.length;i++)
 {this[i-1] = this[i];}
 this.length = i-1;
 return res;}

//popオーバーライド
Array.prototype.pop = function ()
{var res      = this[this.length-1];
 this.length -= 1;
 return res;}

//unshiftオーバーライド
Array.prototype.unshift = function ()
{this.length = this.length+arguments.length-1;
 for(var i=this.length;i>=arguments.length;i--)
 {this[i] = this[i-arguments.length];}
 for(var i=0;i<arguments.length;i++)
 {this[i] = arguments[i];}
 return this.length;}

//pushオーバーライド
Array.prototype.push = function ()
{var limit = this.length;
 for(var i=limit;i<limit+arguments.length;i++)
 {this[i] = arguments[i-limit];}
 var res     = this.length;
 return res;}

//spliceオーバーライド
Array.prototype.splice = function (a,b)
{var res      = new Array();
 for(var i=a;i<a+b && i<this.length;i++)
 {res[res.length] = this[i];}
 for(var i=0;i<this.length;i++)
 {if(i >= a)
  {this[i] = this[i+b];}}
 this.length -= b;
 for(var i=this.length-1;i>=0;i--)
 {if(i >= a)
  {this[i+arguments.length-2] = this[i];}
  if(i == a)
  {for(var ii=2;ii<arguments.length;ii++)
   {this[a+(ii-2)] = arguments[ii];}}}
 return res;}

//grepメソッド
Array.prototype.grep = function (reg)
{var list = new Array();
 for(var i=0;i<this.length;i++)
 {this[i] = this[i]+"0".replace(/0$/,"");
  if(this[i].search(reg) != -1)
  {list[list.length] = this[i];}}
 this.length = list.length;
 for(var i=0;i<this.length;i++)
 {this[i] = list[i];}
 return this.length;}

// -->
</script>

 
開発日誌

[ 2005.1.18 ] ver.1.0

果たして利用価値があるのかわからないけどとりあえず公開。 開発動機は某有名サイトのJavaScriptリファレンスに shiftやpopの対応がNN4以上のみって書いてあって 他の言語だと当たり前のようにあるメソッドだし 結構便利だからIEでも使えるようにと思って作ってみた。

でも作ってる途中で気付いたんだけど実はIEも対応してた。 バージョンは5.5以上ではあるけどね。 IEの利用者の中にはまだ5.0以前の人も若干ながらいるし 古いブラウザを考慮するなら使えなくはないかなってことで。(ほとんど負け惜しみ?) でもそれだけじゃ寂しいからgrepを追加してみました。 基本的に各メソッドをオーバーライドしてるだけなんで 例えばgrepだけ使いたかったら他のメソッドは消しちゃっても問題はないかな。 あ、著作権表示は消さないでね。



ウェブ木箱
copyright(C) 2005 あう