「JavaScript/Array」の版間の差分
削除された内容 追加された内容
→インスタンスメソッド: ソート後の分配 |
→Arrayオブジェクト: s/{だ,である}/{です,ます)/ |
||
3 行
== Arrayオブジェクト ==
{{See also|[[JavaScript/配列|配列]]}}
Arrayオブジェクトは配列を扱うための機能を組み込んだオブジェクトで
配列を作成する際には
<source lang="javascript">
const arr = new Array( 'a', 'b', 'c', 'd' );
</source>
等の書式で行
<source lang="javascript">
const arr = ['a', 'b', 'c', 'd'];
24 ⟶ 25行目:
==== Array.prototype.length ====
配列の有効な最大インデックス+1 を取得する。
=== 静的プロパティ ===
<!--
a=[];for (p in Object.getOwnPropertyDescriptors(Array)) if (typeof Array[p] !="function")a.push(`; Array.${p}`);console.log(a.sort().join("\n"))
-->
; Array.length
: 1
: コンストラクタの引数の数
; Array.name
: "Array"
; Array.prototype
; [object]
=== 静的メソッド ===
65 ⟶ 78行目:
==== Array.prototype.indexOf() ====
==== Array.prototype.join(separator=",") ====
配列を指定した文字を連結子として連結して文字列として返します。
<source lang="javascript">
const d = [ 2007, 11, 21 ];
==== Array.prototype.keys() ====
75 ⟶ 88行目:
==== Array.prototype.pop() ====
配列末尾から要素を取り除く。
このメソッドは破壊的メソッドなので、再代入の必要は
返り値としては、取り除かれた末尾の要素が返
<source lang="javascript">
const arr = ['a','b','c','d','e','f','g','h','i','j','k'];
arr.pop(): // 「k」が返
([]).pop(); // 配列の中身が空の場合はnullが返
</source>
==== Array.prototype.push( [ item1 [ , item2 [ , ... ] ] ] ) ====
配列の末尾に要素を追加して、その配列の長さを返します。このメソッドは破壊的メソッドなので再代入の必要は
<source lang="javascript">
const arr = [1,2,3,4,5,6,7,8,9,10];
arr.push(11);
</source>
95 ⟶ 108行目:
==== Array.prototype.reduceRight() ====
==== Array.prototype.reverse() ====
配列の要素の順番を入れ替える。これは破壊的メソッドであるため。再代入の必要は
<source lang="javascript">
const arr = [1,2,3,4,5,6,7,8,9,10];
102 ⟶ 115行目:
==== Array.prototype.shift() ====
配列の最初の要素を取り除く。このメソッドは破壊的メソッドのため再代入の必要は
返り値として取り除いた要素を返します。
<source lang="javascript">
const arr = [1,2,3,4,5,6,7,8,9,10];
arr.shift();
</source>
115 ⟶ 128行目:
<source lang="javascript">
const arr = ['a','b','c','d','e','f','g','h','i','j','k'];
</source>
end側にundefinedを指定すればstartから配列の末尾までを取得できるはずだが、現在の段階では実装に依存する。
<source lang="javascript">
</source>
==== Array.prototype.some() ====
==== Array.prototype.sort(comparefn) ====
配列要素を引数で指定した方法でソート(並べ替え)する。ちなみにこのメソッドは破壊的メソッドで
並べ替えの方法は、引数の中で規則を定めた関数として与える。
説明だけでは分かりにくい
例えばバラバラに並んだ数字を、昇順(ascending order)に並べ替えたいとき等には次の様な関数を作成して
<source lang="javascript">
function ascendingOrder( _n1 , _n2 ){
console.log(`ascendingOrder( ${_n1} , ${_n2} )`);
return _n1 - _n2;
}
const arr = [5,8,7,2,4,3,9,1,6,0];
arr.sort(ascendingOrder); // ここで並べ替えを実行する
</source>
作成する関数は、配列要素から
並べ替えの規則を指定する場合、関数は非常に簡潔で短いものが非常に多いので
<source lang="javascript">
arr.sort((a, b) => a - b); // ここで並べ替えを実行する
149 ⟶ 163行目:
==== Array.prototype.splice(start, deleteCount [ , item1 [ , item2 [ , ... ] ] ] ) ====
このメソッドは、分割(split)と切り取り(slice)の似た機能を兼ね合わせても
また、このメソッドは破壊的メソッドで
文のみの説明では分かりにくい所があるので、サンプルコードを提示する。
158 ⟶ 172行目:
const n=3;
arr.splice( n, 1 ); // インデックスが3の「d」を取り除く
</source>
spliceメソッドの第2引数は取り除く範囲の大きさで
第3引数以降を利用すると、配列要素の取り除きではなく
つまり、第1、第2引数で配列の入れ替え箇所と範囲を指定した後に、そこに入れ替えたい要素を第3引数以降で指定する。
<source lang="javascript">
const arr = ['a','b','c','d','e','f','g','h','i','j','k'];
arr.splice( 3, 4, 'x','y','z' ); // インデックスが3~7の間の、つまりd,e,f,gをx,y,zに置き換える
</source>
==== Array.prototype.toLocaleString() ====
配列を、使用している環境の言語や文化に合わせた読みやすい形式の文字列に変換して返します。
変換は、配列内部の要素を再帰的に文字列化し連結するので
==== Array.prototype.toString() ====
179 ⟶ 193行目:
==== Array.prototype.unshift( [ item1 [ , item2 [ , ... ] ] ] ) ====
配列の先頭にアイテムを追加して、その配列の長さを返します。
このメソッドは破壊的メソッドなので
<source lang="javascript">
const arr = ['a','b','c','d','e','f','g','h','i','j','k'];
arr.unshift('z','y','x'); // 配列の最初にz,x,yを追加
</source>
|