350 lines
22 KiB
HTML
350 lines
22 KiB
HTML
<?xml version="1.0" encoding="Shift_JIS"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
|
|
<!-- generated by to_html.pl from array.xml -->
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
|
|
<title>Array クラス</title>
|
|
<meta name="author" content="W.Dee" />
|
|
<meta http-equiv="Content-Style-Type" content="text/css" />
|
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
<link href="browser.css" type="text/css" rel="stylesheet" title="吉里吉里関連リファレンス用標準スタイル" />
|
|
<link href="mailto:[email protected]" rev="Made" />
|
|
<link href="index.html" target="_top" rel="Start" title="トップページ" />
|
|
</head>
|
|
<body>
|
|
<h1><a id="id2" name="id2">Array クラス</a>
|
|
</h1><div class="para"><div>
|
|
Array クラスは<a id="id3" name="id3" class="targanchor"><dfn>配列</dfn></a>を扱うクラスです。<br />
|
|
<br />
|
|
このクラスのオブジェクトを作成し、間接メンバ選択演算子によって指定された添え字を使って配列のように扱うことができます。添え字は整数です。0は先頭の要素を表し、1はその次の要素を表します。負の整数を指定すると、配列の最後から指定したものとして扱われます (-1 は最後の要素を表します)。<br />
|
|
|
|
<br />
|
|
<code class="bq"><span class="weak">例:</span><br /> var a = new Array();<br />
|
|
var i;<br />
|
|
for(i=0;i<100;i++) a[i]=i;<br />
|
|
</code>
|
|
<br />
|
|
|
|
<br />
|
|
配列の大きさは宣言する必要はありません。指定された添え字の大きさまで自動的にサイズが拡張され、何も値が代入されていない要素は void に初期化されます。<br />
|
|
<br />
|
|
また、count プロパティがあり、これが配列のサイズを表しています。count プロパティに値を代入しても配列のサイズを変えることができます。<br />
|
|
</div></div>
|
|
|
|
<h1><a id="id4" name="id4">式中配列</a>
|
|
</h1><div class="para"><div>
|
|
<code class="inlinecode"><a id="id5" name="id5" class="targanchor"><dfn>[ ]</dfn></a></code> を使って、式中に <code class="inlinecode">Array</code> クラスのオブジェクトをその場で記述することができます。<code class="inlinecode">[ ]</code> にはカンマで区切り、初期要素となる式を列挙します。たとえば、<br />
|
|
<code class="inlinecode"> var ar = ["a", "b", "c"];</code> と記述すれば、<code class="inlinecode">ar</code> に、 <code class="inlinecode">"a" "b" "c"</code> の要素が入った <code class="inlinecode">Array</code> クラスのオブジェクトへの参照が代入されます。<br />
|
|
</div></div>
|
|
<h1><a id="id6" name="id6">count</a>
|
|
</h1><div class="para"><div>
|
|
count プロパティは、配列の大きさを表します。<br />
|
|
</div></div>
|
|
<h1><a id="id7" name="id7">load</a>
|
|
</h1><div class="para"><div>
|
|
load メソッドは、配列をファイルから読み込みます。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : load(<ファイル名>, <モード=''>)<br />
|
|
</code>
|
|
<br />
|
|
|
|
テキストファイルから配列を読み込みます。ファイルのテキストが一行づつ、各要素に入り、最終的に count プロパティはファイルの行数と同じになります。<br />
|
|
モードには、ファイルを読み込む際のモード文字列を指定します。これは TJS が動作している環境によって異なります。"o" に続いてオフセットを10進で指定するとファイルのそのバイト位置からの読み込みになります。<br />
|
|
TJS が動作している環境によってはこのメソッドと save メソッド、 saveStruct メソッドは使用できません。<br />
|
|
load メソッドは、この Array クラスのオブジェクト自身を返します。<br />
|
|
</div></div>
|
|
<h1><a id="id8" name="id8">save</a>
|
|
</h1><div class="para"><div>
|
|
save メソッドは、配列をファイルに書き出します。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : save(<ファイル名>, <モード=''>)<br />
|
|
</code>
|
|
<br />
|
|
|
|
配列をファイルに書き出します。一行ずつ、各メンバが出力されますが、オブジェクトやクラス、関数などへの参照は空行となります。<br />
|
|
モードには、ファイルを書き込む際のモード文字列を指定します。これは TJS が動作している環境によって異なりますが、吉里吉里の場合は "c" を指定するとファイルに簡単な暗号化がかかります ( そのまま load メソッドで読み込むことができます ) 。"z" を指定するとファイルを圧縮して保存できます ("c" と併用は出来ません; これもそのまま load メソッドで読み込むことができます)。"o" に続いてオフセットを10進で指定するとファイルのそのバイト位置からの書き込みになります。<br />
|
|
save メソッドは、この Array クラスのオブジェクト自身を返します。<br />
|
|
</div></div>
|
|
<h1><a id="id9" name="id9">split</a>
|
|
</h1><div class="para"><div>
|
|
split メソッドは、文字列を分割します。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : split(<パターン/デリミタ集合>, <文字列>, <(予約)>, <空の要素を無視するか=false>)</code>
|
|
<br />
|
|
|
|
配列を初期化し、この配列に、文字列をパターンまたはデリミタ集合で区切った物をコピーします。<br />
|
|
第1引数にはパターンまたはデリミタ集合を指定します。<br />
|
|
パターンは正規表現オブジェクトである必要があります。<br />
|
|
デリミタ集合には、区切り記号となる文字を指定します。文字列を指定することで区切り文字を複数指定できます。<br />
|
|
第3引数は将来のバージョンのために予約されています。<br />
|
|
空の要素を無視するか、では、空の要素 ( たとえばカンマをデリミタにしているときに ,,,,, など ) の場合にその要素を配列にコピーしない場合は true を指定します。<br />
|
|
引数の順番に注意してください。<br />
|
|
</div></div>
|
|
<h1><a id="id10" name="id10">join</a>
|
|
</h1><div class="para"><div>
|
|
join メソッドは、配列を結合し、一つの文字列にします。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : join(<デリミタ>, <(予約)>, <空の要素を無視するか=false>)</code>
|
|
<br />
|
|
|
|
配列の各要素をデリミタで結合し、結合した文字列を返します。<br />
|
|
空の要素を無視するか、が true の場合は、要素中の void は無視されます。<br />
|
|
|
|
<br />
|
|
<code class="bq"><span class="weak">例:</span><br /> var ar = [ "a", "b", void, "d" ];<br />
|
|
var s1 = ar.join(","); <span class="comment">// s1 には "a,b,,d" が代入される</span><br />
|
|
var s2 = ar.join(",",,true); <span class="comment">// s2 には "a,b,d" が代入される</span><br />
|
|
</code>
|
|
<br />
|
|
|
|
</div></div>
|
|
<h1><a id="id11" name="id11">reverse</a>
|
|
</h1><div class="para"><div>
|
|
reverse メソッドは、配列の要素の並びを逆さまにします。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : reverse()<br />
|
|
</code>
|
|
<br />
|
|
|
|
</div></div>
|
|
<h1><a id="id12" name="id12">sort</a>
|
|
</h1><div class="para"><div>
|
|
sort メソッドは、配列をソート(並び替え)します。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : sort(<ソート順='+'>, <安定ソートを行うか=false>)</code>
|
|
<br />
|
|
|
|
ソート順は以下の文字列のどれかです。昇順では小さい物から大きい物へと並び替えられ、降順はその逆です。省略すると '+' を指定されたと見なされます。<br />
|
|
|
|
<br />
|
|
<code class="bq">"+" : 昇順 (通常の < 演算子での比較)<br />
|
|
"-" : 降順<br />
|
|
"0" : 数値による昇順 ( 10,2,1 は 1,2,10 に並び替えられます )<br />
|
|
"9" : 数値による降順<br />
|
|
"a" : 文字列による昇順 ( "a","c","b" は "a","b","c" に並び替えられます )<br />
|
|
"z" : 文字列による降順<br />
|
|
</code>
|
|
<br />
|
|
|
|
ソート順の文字の変わりに関数を指定することが出来ます。関数は2つの引数を持ちます。第1引数が第2引数よりも前に来るべき場合に真を返す関数を指定します (JavaScript の sort メソッドに渡す関数と、戻り値の意味が違うので注意してください )。<br />
|
|
<br />
|
|
第2引数には、安定ソートを行うかどうかを指定します。省略すると false が指定されたと見なされ、不安定なソートが行われます。安定ソートは、同じ順位の配列要素の順番は、ソート後も同じ順番になります。不安定ソートの場合は同じ順位の配列要素の順番は、ソート後に同じ順番になる保証はありません。<br />
|
|
|
|
<br />
|
|
<code class="bq"><span class="weak">例:</span><br /> var array = [ 0, 1, 2, 10, 12, 14, 4, 6, 2 ];<br />
|
|
array.sort();<br />
|
|
<span class="comment">// ↑ メソッド実行後、array は [0, 1, 2, 2, 4, 6, 10, 12, 14] に</span><br />
|
|
array.sort('-');<br />
|
|
<span class="comment">// ↑ メソッド実行後、array は [14, 12, 10, 6, 4, 2, 2, 1, 0] に</span><br />
|
|
array.sort('a');<br />
|
|
<span class="comment">// ↑ メソッド実行後、array は [0, 1, 10, 12, 14, 2, 2, 4, 6] に</span><br />
|
|
<br />
|
|
var array = [ "hoge", "foo" , "bar", "baz" ];<br />
|
|
array.sort();<br />
|
|
<span class="comment">// ↑ メソッド実行後、array は ["bar", "baz", "foo", "hoge"] に</span><br />
|
|
<br />
|
|
var array = [ "abcd", "abc", "ab", "a" , "b", "c" ];<br />
|
|
array.sort(function(a,b) { return a< b; } );<br />
|
|
<span class="comment">// ↑ '+' の指定と同じ意味</span><br />
|
|
<br />
|
|
var array = [ "abcd", "abc", "ab", "a" , "b", "c" ];<br />
|
|
array.sort(function(a,b) { return a.length < b.length; } );<br />
|
|
<span class="comment">// ↑ 文字列の長さの短い順</span><br />
|
|
<span class="comment">// (長さが同じ"a" "b" "c" がソート後も "a" "b" "c"</span><br />
|
|
<span class="comment">// の順番である保証はない)</span><br />
|
|
<br />
|
|
var array = [ "abcd", "abc", "ab", "a" , "b", "c" ];<br />
|
|
array.sort(function(a,b) { return a.length < b.length; }, true );<br />
|
|
<span class="comment">// ↑ 文字列の長さの短い順</span><br />
|
|
<span class="comment">// (長さが同じ"a" "b" "c" はソート後もこの順番である)</span><br />
|
|
</code>
|
|
<br />
|
|
|
|
</div></div>
|
|
<h1><a id="id13" name="id13">saveStruct</a>
|
|
</h1><div class="para"><div>
|
|
saveStruct はファイルへ構造化されたデータの出力を行います。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : save(<ファイル名>, <モード=''>)<br />
|
|
</code>
|
|
<br />
|
|
|
|
saveStruct メソッドは、要素の状態を復元可能な状態でファイルに出力します。<br />
|
|
各要素には文字列、実数、オクテット列、整数を含めることができます。また、要素にオブジェクトがあった場合は、それが Array クラスあるいは Dictionary クラスのオブジェクトである場合に限り、そのオブジェクトの中身もファイルに出力します。それ以外の要素は void が出力されます。<br />
|
|
たとえば、<br />
|
|
|
|
<br />
|
|
<code class="bq"><span class="weak">例:</span><br /> ([ 1, 2, 3, [4, 5], %[ a : 1, b : 2 ], "文字列" ]).saveStruct("out.txt");<br />
|
|
</code>
|
|
<br />
|
|
|
|
では
|
|
<br />
|
|
<code class="bq">(const) [<br />
|
|
1,<br />
|
|
2,<br />
|
|
3,<br />
|
|
(const) [<br />
|
|
4,<br />
|
|
5<br />
|
|
],<br />
|
|
(const) %[<br />
|
|
"a" => 1,<br />
|
|
"b" => 2<br />
|
|
],<br />
|
|
"文字列"<br />
|
|
]<br />
|
|
</code>
|
|
<br />
|
|
|
|
のような内容が出力されます。これはこのファイル全体を一つの式として評価することにより、保存した時と同じ構造を復元できるものです。<br />
|
|
ここでの (const) は、 [ ] や %[ ] の中身が定数項しか無いことを表しています。コンパイラはこの(const) を見つけると、直後の式中辞書配列や式中配列を、中身が定数項しかないことと仮定して、高効率で読み込む事ができます。<br />
|
|
saveStruct メソッドは、この Array クラスのオブジェクト自身を返します。<br />
|
|
</div></div>
|
|
<h1><a id="id14" name="id14">assign</a>
|
|
</h1><div class="para"><div>
|
|
assign メソッドは、配列をコピーします。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : assign(<コピー元配列>)<br />
|
|
</code>
|
|
<br />
|
|
|
|
引数で指定された他の配列の内容を、そっくりコピーします。<br />
|
|
<br />
|
|
辞書配列 (Dictionaryクラスのオブジェクト) をコピー元配列に指定した場合は、その辞書配列の各メンバが、名前、値の順に交互に現れる配列となります。メンバの順番は不定となります。<br />
|
|
</div></div>
|
|
<h1><a id="id15" name="id15">assignStruct</a>
|
|
</h1><div class="para"><div>
|
|
assignStruct メソッドは、配列を構造ごとコピーします。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : assignStruct(<コピー元配列>)<br />
|
|
</code>
|
|
<br />
|
|
|
|
引数で指定された他の配列の内容を、そっくりコピーします。<br />
|
|
assign メソッドと違い、メンバに配列あるいは辞書配列があった場合は、再帰的にその内容も
|
|
コピーします ( assign メソッドの場合は参照がコピーされるだけです )。<br />
|
|
</div></div>
|
|
<h1><a id="id16" name="id16">clear</a>
|
|
</h1><div class="para"><div>
|
|
clear メソッドは、配列の要素をすべて削除します。<br />
|
|
</div></div>
|
|
<h1><a id="id17" name="id17">erase</a>
|
|
</h1><div class="para"><div>
|
|
erase メソッドは、指定された添え字の要素を削除します。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : erase(<添え字>)<br />
|
|
</code>
|
|
<br />
|
|
|
|
指定された位置にある添え字を削除します。添え字以降の要素は一つずつ前にずれ、詰められます。添え字が範囲外の場合は例外が発生します。<br />
|
|
</div></div>
|
|
<h1><a id="id18" name="id18">remove</a>
|
|
</h1><div class="para"><div>
|
|
remove メソッドは、指定された値と同じ値を持つ要素を削除します。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : remove(<値>, <すべて削除するか=true>)<br />
|
|
</code>
|
|
<br />
|
|
|
|
指定された値と各要素を識別比較し ( <a id="id19" name="id19" class="targanchor"><dfn>===</dfn></a> 演算子の動作 )、一致した要素を削除します。<br />
|
|
すべて削除するか、が false の場合は、最初に見つかった要素のみを削除します。そうでなければ、見つかったすべての要素を削除します。<br />
|
|
</div></div>
|
|
<h1><a id="id20" name="id20">insert</a>
|
|
</h1><div class="para"><div>
|
|
insert メソッドは、指定された値を指定された位置に挿入します。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : insert(<位置>, <値>)<br />
|
|
</code>
|
|
<br />
|
|
|
|
位置で示された添え字位置に、値で示された要素を挿入します。位置以降の要素は一つずつ後ろにずれます。<br />
|
|
</div></div>
|
|
<h1><a id="id21" name="id21">add</a>
|
|
</h1><div class="para"><div>
|
|
add メソッドは、指定された値を配列の最後に追加します。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : add(<値>)<br />
|
|
</code>
|
|
<br />
|
|
|
|
配列の最後に値で示された要素を追加します。<br />
|
|
このメソッドは値が追加された位置を返します。<br />
|
|
</div></div>
|
|
<h1><a id="id22" name="id22">find</a>
|
|
</h1><div class="para"><div>
|
|
find メソッドは、指定された値が最初に現れる添え字を返します。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : find(<値>, <検索開始位置=0>)<br />
|
|
</code>
|
|
<br />
|
|
|
|
指定された値を、検索開始位置の添え字から順に見ていき、最初に現れる添え字を返します。指定された値が見つからなかったときは -1 を返します。<br />
|
|
比較には識別比較 ( === 演算子の動作 ) が用いられます。<br />
|
|
</div></div>
|
|
<h1><a id="id23" name="id23">push</a>
|
|
</h1><div class="para"><div>
|
|
push メソッドは、指定された要素を配列の最後に追加します。<br />
|
|
addメソッドと違い、このメソッドは追加後の配列のサイズを返します。また、複数の引数を指定した場合は、すべての引数を順番に追加します。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : push(<値>, ...)<br />
|
|
</code>
|
|
<br />
|
|
|
|
</div></div>
|
|
<h1><a id="id24" name="id24">pop</a>
|
|
</h1><div class="para"><div>
|
|
push メソッドは、配列の最後から一つ要素を取り出し、それを返します。取り出された要素は配列から削除されます(配列のサイズは一つ減ります)。<br />
|
|
このメソッドは、取り出された要素を返します。要素が無かった場合はvoidを返します。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : pop()<br />
|
|
</code>
|
|
<br />
|
|
|
|
</div></div>
|
|
|
|
<h1><a id="id25" name="id25">unshift</a>
|
|
</h1><div class="para"><div>
|
|
unshift メソッドは、要素を配列の先頭に追加します。複数の要素が指定された場合は複数の要素を先頭に追加することができます。この場合は、たとえば a, b, c の順番で渡された場合は、配列の先頭の要素は a, b, c の順番になります。<br />
|
|
このメソッドは追加後の配列のサイズを返します。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : unshift(<値>, ...)<br />
|
|
</code>
|
|
<br />
|
|
|
|
</div></div>
|
|
<h1><a id="id26" name="id26">shift</a>
|
|
</h1><div class="para"><div>
|
|
shift メソッドは、配列の最初から一つ要素を取り出し、それを返します。取り出された要素は配列から削除されます(配列のサイズは一つ減ります)。<br />
|
|
このメソッドは、取り出された要素を返します。要素が無かった場合はvoidを返します。<br />
|
|
|
|
<br />
|
|
<code class="bq">構文 : shift()<br />
|
|
</code>
|
|
<br />
|
|
|
|
</div></div>
|
|
<script type="text/javascript" charset="Shift_JIS" src="documentid.js" ></script>
|
|
<script type="text/javascript" charset="Shift_JIS" src="postcontent.js" ></script>
|
|
</body>
|
|
</html>
|