メモ:図解!TypeScriptのツボとコツがゼッタイにわかる本 "超"入門編 (5)


05. 配列を学ぼう

01. 配列リテラル
[a, b, c, …, z]
new Array(x);

配列の型注釈:
let 変数名: データ型[];
let 変数名: Array<データ型>;

配列の型注釈+ユニオン型:
let x: (number|string)[];

列挙型:
enum DayOfWeek{"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}

02. 配列要素のアクセス
変数名[要素番号]
※要素番号は0~

03. 配列のアクセス制限
読み取り専用:
変数名] readonly データ型[];

04. 配列の分割代入
2つの変数値の交換:
let a:number=1;
let b:number=2;
[a,b] = [b,a];
    
途中の要素の取り出し:
const x:number[] = [1,2,3,4,5];
let[,,c,,e,f] = x;
console.log(c); // 3
console.log(e); // 5
console.log(f); // undefined
    
残りの要素(残余引数(Rest Parameters))
const x:number[] = [1,2,3,4,5];
let[a, ...b] = x;
console.log(a); // 1
console.log(b); // [2,3,4,5]
    

05. 配列のコピー
"..." = スプレッド構文
配列のコピー:
const x: number[] = [1,2,3];
const y:number[] = [...x];
const z:number[] = [...x, ...y];
console.log(y); // [1,2,3]
console.log(z); // [1,2,3,1,2,3]
    
※ "const y:number[] = x" だと値コピーではなく参照コピー

06. 配列要素の繰り返し
配列の長さ:
配列名.length

for or文:
for(let 変数名 of 配列名)
※for or文では型注釈が使えない

forEachメソッド:
配列名.forEach(関数(要素){ })

繰り返し中止:
break;
※forEachでは使用不可

07. 配列を操作するメソッド
push 末尾に要素を追加
配列名.push(要素, 要素, …);

pop 末尾の要素を削除しその要素を返す
値 = 配列名.pop();

shift 先頭から要素を削除しその要素を返す
値 = 配列名.shift();

unshift 先頭に要素を追加し追加後の要素数を返す
要素数 = 配列名.unshift(要素, 要素, …);

slice 指定した範囲の新しい配列を返す
配列(コピー) = 配列名.slice(開始位置, 終了位置);

join 指定した文字で配列要素を連結した文字列を返す
文字列 = 配列名.join(区切り文字);

reverse 配列要素の並び順を逆転
配列(破壊) = 配列名.reverse();

fill したいした範囲を指定した値に置換
配列名.fill(値, 開始位置, 終了位置);

includes 指定した要素が配列に含まれているか
boolean = 配列名.includes(検索値, 検索開始位置);

some 指定した条件を満たす要素が存在するか
boolean = 配列名.some(関数(要素, 要素番号, 元の配列));

forEach 配列の各要素に対して関数を実行

find 関数で指定した最初の要素を返す
値(無ければundefined) = 配列名.find(関数(要素, 要素番号, 元の配列));

findIndex 関数で指定した最初の要素位置を返す
位置 = 配列名.find(関数(要素, 要素番号, 元の配列));

filter 条件を満たす要素を集めた新しい要素を返す
配列(コピー) = 配列名.filter(関数(要素, 要素番号, 元の配列));

sort 要素の位置を並び替え
配列名.soft(比較関数(比較対象a, 比較対象b));

map 新しい配列を作成
配列(コピー) = 配列名.map(関数(要素, 要素番号, 元の配列));

indexOf 指定した要素と一致する最初の要素の位置を返す
位置 = 配列名.indexOf(検索値, 検索開始位置);


TypeScript

0 件のコメント:

その他の記事