JavaScriptプログラムに関する各種メモ書き:タグ「配列」での検索

JavaScriptでアルファベットの大文字と小文字を区別せずソートする。

一般的に文字列でソートすると大文字と小文字は区別されてしまいます。

そこで大文字の(A)も小文字の(a)も同じ(a)としてソートする方法がこちら

var text_array = ['AAA','aaa','bb','BBB','zzzz']
// ソート(大文字と小文字を区別しない)
text_ary = text_ary.sort(function (a, b) {
	a = a.toString().toLowerCase();
	b = b.toString().toLowerCase();
	return (a > b) ?  1 :
		   (b > a) ? -1 : 0;
});
alert(text_array);

引用元 : https://gist.github.com/ishiduca/1215718

No.921
02/12 10:18

edit

配列

JavaScriptでPHPのin_arrayのような関数を作る

JavaScriptにはin_arrayのようにある数値や文字列が配列の中に存在するかどうかを判別する関数がありません。

そこで以下のようにして作成します。

Array.prototype.in_array = function(val) {
	for(var i = 0, l = this.length; i < l; i++) {
		if(this[i] == val) {
			return true;
		}
	}
	return false;
}

これで、配列のメソッドとして in_array が使用できるようになります。

var my_array = new Array('hogehoge','fugafuga');
if ( my_array.in_array('hogehoge') ){ alert('存在します'); }
No.900
10/25 18:14

edit

配列

配列かどうかを判別する

JavaScriptである変数(hogehoge)が配列かどうかを確認したい時があります。その時は

if ( hogehoge instanceof Array) {
	alert('配列')
}
else{
	alert('スカラー')
}

とします

No.852
05/30 10:09

edit

配列

DOMオブジェクト・jQueryオブジェクト をダンプ(テキスト表示)する。

デバッグ時には必ず出くわすのですが、DOMオブジェクトの中身を見たい!という時があります。

・DOMオブジェクトの中身を確認したいときには以下のようにします。

Firefox限定ですが便利。

var serializer = new XMLSerializer();
alert( serializer.serializeToString( dom_obj ) );

・Safari、Chrome, Firefox でオブジェクトの中身を確認したいときには以下のようにします。(出力は「エラーコンソール」)

console.log( object )

Chrome, Firefox でオブジェクトの中身が DOMオブジェクトなのか jQueryオブジェクトなのかを確認したいときは

console.log( Object.getPrototypeOf( $("#test01") ) );
console.log( Object.getPrototypeOf( document.getElementById('test01') ) );

とします。 jQueryの場合は【jQuery】、DOMオブジェクトの場合は 【HTML.......】と表示されます。

ただ、そもそもオブジェクト以外の者を渡した場合場合にエラーとなりますので、

	if (Object.prototype.toString.call(my_obj)==='[object Object]'){ console.log(Object.getPrototypeOf( my_obj )); }

としてもいいです。


どうせなら groupメソッドを使って

jq_obj =  $("#test01");

console.group('jq_objの中身は↓');
console.log(Object.getPrototypeOf( jq_obj ));
console.log(jq_obj);
console.groupEnd();

とするとメッセージがグループ化されていい感じに見えます。


・jQueryオブジェクトをダンプしたい場合は

http://goo.gl/rXUKI

が便利です。

・その他のオブジェクト(JSON等)、配列、連想配列などをダンプしたい場合は

JKL.Dumper が便利です↓

http://www.kawa.net/works/js/jkl/dumper.html

使い方(オブジェクト hoge の中身をダンプする)

<script type="text/javascript" src="jkl-dumper.js"></script> 
var hoge = [1,2,3,4,5];
alert( new JKL.Dumper().dump(hoge) );

便利!!!

No.510
06/13 17:25

edit

DOM
json
配列
jQuery

配列をランダムに並び替える

配列 array をランダムに並び替える。

for (i=0 ; i<array.length; i++){
var tmpA, tmpB, rnd;
rnd=Math.floor(Math.random() * array.length);
tmpA=array[i];
tmpB=array[rnd];
array[i]=tmpB;
array[rnd]=tmpA;
}

例:

<script language="javascript">
array=new Array(
'カリーニ' ,
'ロドリゲス' ,
'レコバ' ,
'フォルラン' ,
'エストジャノフ'
);
document.write(array+"¥n");
for (i=0 ; i<array.length; i++){
var tmpA, tmpB, rnd;
rnd=Math.floor(Math.random() * array.length);
tmpA=array[i];
tmpB=array[rnd];
array[i]=tmpB;
array[rnd]=tmpA;
}
document.write(array+"¥n");
</script>
No.395
04/12 18:02

edit

配列