TypeScript Array(配列)
配列オブジェクトは、個別の変数名を使用して一連の値を格納するものです。
配列は非常によく使われます。
もし一連のデータ(例:ウェブサイト名)を個別の変数に格納すると、次のようになります。
10個、100個となると、この方法は非常に非実用的になります。そのような場合は配列を使って解決できます。
この方がずっと簡潔に見えます。
TypeScript で配列を宣言する構文は次のとおりです。
var array_name[:datatype]; //声明 array_name = [val1,val2,valn..] //初始化
または、宣言時に直接初期化します:
var array_name[:datatype] = [val1,val2…valn]
配列の宣言時に型が設定されていない場合、any 型とみなされ、初期化時に最初の要素の型に基づいて配列の型が推論されます。
例
number 型の配列を作成します:
var numlist:number[] = [2,4,6,8]
配列全体の構造は次のとおりです。

インデックス値は最初が 0 です。インデックス値に基づいて配列要素にアクセスできます。
TypeScript
上記のコードをコンパイルすると、次の JavaScript コードが得られます:
JavaScript
出力結果は次のとおりです:
Google サンプル
次の例では、宣言時に直接初期化します:
TypeScript
上記のコードをコンパイルすると、次の JavaScript コードが得られます:
JavaScript
出力結果は次のとおりです:
1 2 3 4
Array オブジェクト
Array オブジェクトを使用して配列を作成することもできます。
Array オブジェクトのコンストラクタは、次の2種類の値を受け取ります。
- 配列のサイズを表す数値。
- 初期化する配列リスト。要素はカンマ区切りの値です。
例
配列の初期化サイズを指定します:
TypeScript
上記のコードをコンパイルすると、次の JavaScript コードが得られます:
JavaScript
出力結果は次のとおりです:
0 2 4 6
次の例では、配列要素を直接初期化します:
TypeScript
上記のコードをコンパイルすると、次の JavaScript コードが得られます:
JavaScript
出力結果は次のとおりです:
Google サンプル Taobao Facebook
配列の分割代入
配列要素を変数に代入することもできます。次のとおりです。
TypeScript
上記のコードをコンパイルすると、次の JavaScript コードが得られます:
JavaScript
出力結果は次のとおりです:
12 13
配列の反復
for 文を使用して配列の各要素をループ出力できます:
TypeScript
上記のコードをコンパイルすると、次の JavaScript コードが得られます:
JavaScript
出力結果は次のとおりです:
1001 1002 1003 1004
多次元配列
ある配列の要素が別の配列になることができ、これにより多次元配列(Multi-dimensional Array)が構成されます。
最も簡単な多次元配列は2次元配列で、定義方法は次のとおりです。
var arr_name:datatype[][]=[ [val1,val2,val3],[v1,v2,v3] ]
例
各次元の配列に3つの要素を持つ2次元配列を定義します。

TypeScript
上記のコードをコンパイルすると、次の JavaScript コードが得られます:
JavaScript
出力結果は次のとおりです:
1 2 3 23 24 25
関数での配列の使用
関数への引数として渡す
TypeScript
上記のコードをコンパイルすると、次の JavaScript コードが得られます:
JavaScript
出力結果は次のとおりです:
Google サンプル Taobao Facebook
関数の戻り値として返す
TypeScript
上記のコードをコンパイルすると、次の JavaScript コードが得られます:
JavaScript
出力結果は次のとおりです:
Google サンプル Taobao Facebook
配列メソッド
次の表に、よく使われる配列メソッドをいくつか示します:
| 番号 | メソッド & 説明 | 例 |
|---|---|---|
| 1. | concat()
2つ以上の配列を連結し、結果を返します。 |
var alpha = ["a", "b", "c"];
var numeric = [1, 2, 3];
var alphaNumeric = alpha.concat(numeric);
console.log("alphaNumeric : " + alphaNumeric ); // a,b,c,1,2,3
|
| 2. | every()
配列のすべての要素が条件を満たすかどうかを検出します。 |
function isBigEnough(element, index, array) {
return (element >= 10);
}
var passed = [12, 5, 8, 130, 44].every(isBigEnough);
console.log("Test Value : " + passed ); // false
|
| 3. | filter()
配列要素を検査し、条件を満たすすべての要素を含む配列を返します。 |
function isBigEnough(element, index, array) {
return (element >= 10);
}
var passed = [12, 5, 8, 130, 44].filter(isBigEnough);
console.log("Test Value : " + passed ); // 12,130,44
|
| 4. | forEach()
配列の各要素に対してコールバック関数を1回実行します。 |
let num = [7, 8, 9];
num.forEach(function (value) {
console.log(value);
});
JavaScript コードにコンパイルします:
var num = [7, 8, 9];
num.forEach(function (value) {
console.log(value); // 7 8 9
});
|
| 5. | indexOf()
配列内の要素を検索し、その位置(インデックス)を返します。 見つからない場合は -1 を返し、その要素がないことを表します。 |
var index = [12, 5, 8, 130, 44].indexOf(8);
console.log("index is : " + index ); // 2
|
| 6. | join()
配列のすべての要素を1つの文字列にまとめます。 |
var arr = new Array("Google","サンプル","Taobao");
var str = arr.join();
console.log("str : " + str ); // Google,サンプル,Taobao
var str = arr.join(", ");
console.log("str : " + str ); // Google, サンプル, Taobao
var str = arr.join(" + ");
console.log("str : " + str ); // Google + サンプル + Taobao
|
| 7. | lastIndexOf()
指定した文字列値が最後に出現する位置を返します。文字列内の指定位置から後方に向かって検索します。 |
var index = [12, 5, 8, 130, 44].lastIndexOf(8);
console.log("index is : " + index ); // 2
|
| 8. | map()
指定した関数で配列の各要素を処理し、処理後の配列を返します。 |
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
console.log("roots is : " + roots ); // 1,2,3
|
| 9. | pop()
配列の最後の要素を削除し、その削除した要素を返します。 |
var numbers = [1, 4, 9];
var element = numbers.pop();
console.log("element is : " + element ); // 9
var element = numbers.pop();
console.log("element is : " + element ); // 4
|
| 10. | push()
配列の末尾に1つ以上の要素を追加し、新しい長さを返します。 |
var numbers = new Array(1, 4, 9);
var length = numbers.push(10);
console.log("new numbers is : " + numbers ); // 1,4,9,10
length = numbers.push(20);
console.log("new numbers is : " + numbers ); // 1,4,9,10,20
|
| 11. | reduce()
配列要素を1つの値に計算します(左から右)。 |
var total = [0, 1, 2, 3].reduce(function(a, b){ return a + b; });
console.log("total is : " + total ); // 6
|
| 12. | reduceRight()
配列要素を1つの値に計算します(右から左)。 |
var total = [0, 1, 2, 3].reduceRight(function(a, b){ return a + b; });
console.log("total is : " + total ); // 6
|
| 13. | reverse()
配列の要素の順序を反転します。 |
var arr = [0, 1, 2, 3].reverse();
console.log("Reversed array is : " + arr ); // 3,2,1,0
|
| 14. | shift()
配列の最初の要素を削除し、その削除した要素を返します。 |
var arr = [10, 1, 2, 3].shift();
console.log("Shifted value is : " + arr ); // 10
|
| 15. | slice()
配列の一部を選択し、新しい配列を返します。 |
var arr = ["orange", "mango", "banana", "sugar", "tea"];
console.log("arr.slice( 1, 2) : " + arr.slice( 1, 2) ); // mango
console.log("arr.slice( 1, 3) : " + arr.slice( 1, 3) ); // mango,banana
|
| 16. | some()
配列要素の中に指定した条件を満たす要素があるかどうかを検出します。 |
function isBigEnough(element, index, array) {
return (element >= 10);
}
var retval = [2, 5, 8, 1, 4].some(isBigEnough);
console.log("Returned value is : " + retval ); // false
var retval = [12, 5, 8, 1, 4].some(isBigEnough);
console.log("Returned value is : " + retval ); // true
|
| 17. | sort()
配列の要素を並べ替えます。 |
var arr = new Array("orange", "mango", "banana", "sugar");
var sorted = arr.sort();
console.log("Returned string is : " + sorted ); // banana,mango,orange,sugar
|
| 18. | splice()
配列に要素を追加または削除します。 |
var arr = ["orange", "mango", "banana", "sugar", "tea"];
var removed = arr.splice(2, 0, "water");
console.log("After adding 1: " + arr ); // orange,mango,water,banana,sugar,tea
console.log("removed is: " + removed);
removed = arr.splice(3, 1);
console.log("After removing 1: " + arr ); // orange,mango,water,sugar,tea
console.log("removed is: " + removed); // banana
|
| 19. | toString()
配列を文字列に変換し、結果を返します。 |
var arr = new Array("orange", "mango", "banana", "sugar");
var str = arr.toString();
console.log("Returned string is : " + str ); // orange,mango,banana,sugar
|
| 20. | unshift()
配列の先頭に1つ以上の要素を追加し、新しい長さを返します。 |
var arr = new Array("orange", "mango", "banana", "sugar");
var length = arr.unshift("water");
console.log("Returned array is : " + arr ); // water,orange,mango,banana,sugar
console.log("Length of the array is : " + length ); // 5
|