Arrayオブジェクトって何?
詳しく知りたい・・
本記事は、
上記のような方に向けて記事を書いています。
こんにちは、トモジです。
私はプログラミング未経験から独学で勉強して、
簡易的な動的サイト・ゲーム・サービスが作れる状態になりました。
本記事は、Arrayオブジェクトに関して要点を
わかりやすく説明しております。
1.JavaScriptのArrayオブジェクト
Arrayオブジェクトは、
配列型の値を扱うためのオブジェクトで
要素を[追加]・[削除]・[結合]・[並べ替え]
などを行うための機能が提供されております。
非常にたくさんの機能が提供されておりますので、
今回は前編(オレンジ枠)を順番に説明します。
2.基本類
Arrayオブジェクトの基本は、
以下の9種類のメンバーがありますので
順番に見ていきましょう。
length
lengthは、配列のサイズを確認できます。
lengthに関して
var ary = ["総統", "吉田くん", "フィリップ", "レオナルド博士", "ぼさつとうげ"];
console.log(ary.length);
5
isArray
isArrayは、指定したオブジェクトが
配列であるかを確認できます。
isArrayに関して
var ary = ["総統", "吉田くん", "フィリップ", "レオナルド博士", "ぼさつとうげ"];
var obj = {"name":"吉田くん", "age":21, "birthday":"7月27日"};
console.log("配列 : " + Array.isArray(ary));
console.log("オブジェクト : " + Array.isArray(obj));
console.log("数値 : " + Array.isArray(123));
console.log("文字列 : " + Array.isArray("foo"));
配列 : true
オブジェクト : false
数値 : false
文字列 : false
toString
toStringは、
[要素,要素,・・・]の形で文字列に変換します。
toStringに関して
var ary = ["総統", "吉田くん", "フィリップ"];
console.log("toString : " + ary.toString());
toString : 総統,吉田くん,フィリップ
toLocaleString
toLocaleStringは、
指定したロケールにあわせて対象の数値を
文字列に変換した値を返します。
toLocaleStringに関して
var num = 12345.67890;
var str = num.toLocaleString();
// 言語の変換
var strArabic = num.toLocaleString('ar-EG');
var strChinese = num.toLocaleString('zh-Hans-CN-u-nu-hanidec');
// 単位を付ける
var strJapan = num.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' });
var strGerman = num.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' });
// 有効数字のケタ数を指定
var strIndia = num.toLocaleString('en-IN', { maximumSignificantDigits: 6 });
console.log("toLocaleString : " + str);
console.log("アラビア : " + strArabic);
console.log("中国 : " + strChinese);
console.log("日本 : " + strJapan);
console.log("ドイツ : " + strGerman);
console.log("インド : " + strIndia);
toLocaleString : 12,345.679
アラビア : ١٢٬٣٤٥٫٦٧٩
中国 : 一二,三四五.六七九
日本 : ¥12,346
ドイツ : 12.345,68 €
インド : 12,345.7
indexOf
indexOfは、
配列の中に指定した文字列があるか確認できます。
検索した文字がある場合は位置の番号を返し、
検索した文字がない場合は、[-1]を返します。
indexOfに関して
var ary = ["総統", "吉田くん", "フィリップ"];
console.log("indexOf(合致した場合) : " + ary.indexOf("吉田くん"));
console.log("indexOf(合致しない場合) : " + ary.indexOf("吉田"));
indexOf(合致した場合) : 1
indexOf(合致しない場合) : -1
lastIndexOf
lastIndexOfは、指定した配列がある場合に、
最後の文字列だけを取得することができます。
lastIndexOfに関して
var ary = ["総統", "吉田くん", "フィリップ", "吉田くん"];
console.log("lastIndexOf : " + ary.lastIndexOf("吉田くん"));
lastIndexOf : 3
entries
entriesは、オブジェクトの
キー(key)と値(value)を全て取得します。
entriesに関して
var obj = {"name":"テスラ", "gender":"male", "iq":240};
console.log("entries : " + Object.entries(obj));
entries : name,テスラ,gender,male,iq,240
keys
keysは、全てのキーのみ取得します。
keysに関して
var obj = {"name":"テスラ", "gender":"male", "iq":240};
console.log("keys : " + Object.keys(obj));
keys : name,gender,iq
values
valuesは、全ての値を取得します。
valuesに関して
var obj = {"name":"テスラ", "gender":"male", "iq":240};
console.log("values : " + Object.values(obj));
keys : テスラ,male,240
3.加工
Arrayオブジェクトの加工は、
以下の8種類のメンバーがありますので
順番に見ていきましょう。
concat
concatは、
指定配列を現在の配列に繋げることができます。
concatに関して
var ary1 = ["ネコ","イヌ"];
var ary2 = ["サル","ブタ"];
var ary3 = ["ウマ","カメ"];
var sumAry = ary1.concat(ary2);
console.log("concat : " + sumAry.concat(ary3));
concat : ネコ,イヌ,サル,ブタ,ウマ,カメ
join
joinは、配列内の要素を区切り文字(自由に指定)で
連結します。
joinに関して
var ary = ["総統", "吉田くん", "フィリップ"];
console.log("join( / ) : " + ary.join(" / "));
console.log("join( ❗️ ) : " + ary.join("❗️"));
join( / ) : 総統 / 吉田くん / フィリップ
join(❗️ ) : 総統❗️吉田くん❗️フィリップ
slice
sliceは、スタート位置とエンド位置を
決めて要素を取得できます。
※エンド位置は含まない
sliceに関して
var ary = ["総統", "吉田くん", "フィリップ", "レオナルド博士", "ぼさつとうげ"];
console.log("slice : " + ary.slice(1,3));
slice(1,3) : 吉田くん,フィリップ
splice
spliceは、スタート位置とエンド位置を
決めて要素を置き換えます。
※エンド位置は含まない
spliceに関して
var ary = ["総統", "吉田くん", "フィリップ"];
console.log("要素取得 : " + ary.splice( 1, 2, 'ぼさつとうげ', '大家さん'));
console.log("置き換え後の結果 : " + ary);
要素取得 : 吉田くん,フィリップ
置き換え後 : 総統,ぼさつとうげ,大家さん
from
fromは、配列のようなオブジェクトや
反復可能オブジェクトから
Arrayインスタンスを生成します。
fromに関して
var str = "ぼさつとうげ";
var array = [1, 2, 3];
console.log("from(文字列) : " + Array.from(str));
console.log("from(文字列) : " + Array.from(str[1]));
console.log("from(関数) : " +Array.from(array, x => x + x));
from(文字列) : ぼ,さ,つ,と,う,げ
from(文字列) : さ
from(関数) : 2,4,6
of
ofは、引数の数や型にかかわらず新しい
Arrayインスタンス を生成します。
ofに関して
var arrayOf = Array.of(10); //[10]
var arrayOfs = Array.of('文字',1,false); //['文字', 1, false]
var emptyArray = Array(10); //空の配列10個
var arrays = Array(1, 2, 3); //[1, 2, 3]
console.log("arrayOf:" + arrayOf);
console.log("arrayOfs:" + arrayOfs);
console.log("emptyArray:" + emptyArray);
console.log("arrays:" + arrays);
arrayOf:10
arrayOfs:文字,1,false
emptyArray:,,,,,,,,,
arrays:1,2,3
copyWithin
copyWithinは、スタート位置とエンド位置を
決めて要素をコピーします。
※エンド位置は含まない
copyWithinに関して
var ary = ["総統", "吉田くん", "フィリップ", "レオナルド博士", "ぼさつとうげ"];
console.log("copyWithin(2,0,2) : " + ary.copyWithin(2,0,2));
copyWithin(2,0,2) : 総統,吉田くん,総統,吉田くん,ぼさつとうげ
fill
fillは、スタート位置とエンド位置を
決めて要素を指定文字に置き換えます。
※エンド位置は含まない
fillに関して
var ary = ["総統", "吉田くん", "フィリップ", "レオナルド博士", "ぼさつとうげ"];
console.log("fill() : " + ary.fill('秘密結社',0,5));
fill(‘秘密結社’,0,5) : 秘密結社,秘密結社,秘密結社,秘密結社,秘密結社
まとめ
最後にこの記事のポイントをまとめておきます。
基本
length
配列のサイズを確認isArray
配列であるかを確認toString
文字列に変換toLocaleString
対象の数値を文字列に変換indexOf
指定した文字があるか確認lastIndexOf
指定した再度の文字があるか確認entries
オブジェクトのキーと値を取得keys
オブジェクトのキーを取得values
オブジェクトの値を取得
加工
concat
指定配列を現在の配列に繋げるjoin
区切り文字で連結slice
開始と終了の要素を取得splice
開始と終了を決めて要素を置換from
配列のようなオブジェクトや
反復可能オブジェクトから
Arrayインスタンスを生成of
引数の数や型にかかわらず新しい
Arrayインスタンスを生成copyWithin
開始と終了の要素をコピーfill
開始と終了を決めて指定文字に置換