top


総投稿数 本 
no_

スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
no_1169

indexOf:なんでないのかなぁ?それともあるのかなぁ?配列含む検索用関数 ・・・ 【javaScript】

 2009-11-25
 小ネタで。
 javascript において、
 ・対象文字列の中に特定のサーチ文字列
  探すのは、
srsStr.indexof(searcStr,0);
 であり、
  この場合は、
  文字列の最初から探し(反対もあるけど)
  見つけた場合にその位置を返してくれるわけで。
  当然「含む」検索に利用できる。

 


 でも、素晴らしい汎用ライブラリ「prototype.js」がそれを
 配列に展開用意してくれている、
 配列用の
pos = arrayObj.indexOf(searcStr); 
 は、
  あくまでも「イコール」なんだよな。

 


 prototype.js 確認すると、
// use native browser JS 1.6 implementation if available
if (Object.isFunction(Array.prototype.forEach))
Array.prototype._each = Array.prototype.forEach;

if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
i || (i = 0);
var length = this.length;
if (i < 0) i = length + i;
for (; i < length; i++)
if (this[i] === item) return i;
return -1;
};

if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) {
i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;
var n = this.slice(0, i).reverse().indexOf(item);
return (n < 0) ? n : i - n - 1;
};
とあり、「(this[i] === item)」なんだな。
   結構、配列の値の中に「含まれるか」っていう
   用途、多いと思うんだけど。それとも他にあるのかな。

 一応、こういう関数を使って処理する。
function indexOfins(Arrayobj,item, i) {
var length = Arrayobj.length;
for(var i=0;i<length;i++){
if (Arrayobj[i].indexOf(item,0)>=0){ return i; }
}
return -1;
}
 【20091126】不具合あり、自分なりの書き方に変更

FC2ブログランキング にほんブログ村 IT技術ブログ Webサイト構築へ ブログ王ランキング 人気ブログランキング 人気ホームページランキングへ


commentsコメント
comment_post












管理者にだけ表示を許可する
commentトラックバック
トラックバックURL:
http://metaboy.blog23.fc2.com/tb.php/1169-f22f128f
ようこそ
Add to Google 創るmetaboy:RSSフィード
My Yahoo!に追加
最新記事のRSS | 問い合わせ

仕事検索、アルバイト検索、依頼仕事の検索ポータル - 仕事検索.COM - www.jobkensaku.com ツクルン

創るmetaboy - WEB創る、サイト創る、何創る - 創ったmetaboy

 

リンク集

 

最近の記事

 

ブロとも申請フォーム
Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)
お名前.com お名前.com
名づけてねっと名づけてねっと
ムームードメインムームードメイン

 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。