脱・初学者!Array.isArray()とArray.from()の使い分けを妹と一緒にマスターしよう
お兄ちゃんが言ってる Array.array ってやつなんだけど……。
あのね、単刀直入に言うよ?
そんなメソッド、JavaScriptには存在しません!!!(ガーン!)
「えっ、嘘だろ!?」って顔してるお兄ちゃんのために、妹がビシッと解説してあげるから、耳の穴かっぽじってよく聞いててね!
お兄ちゃんが探してるのは、たぶん Array.isArray() か、もしくは Array.from() のことじゃないかな?
トラブルその1
存在しないメソッドを呼ぶ
Array.array([1, 2]) って書くと、JavaScriptくんは「は?何それ、意味わかんないんだけど」ってキレて、TypeError を出しちゃうんだよ。
トラブルその2
インスタンスから呼んじゃう
もし Array.isArray() のことだとしても、myList.isArray() みたいに書いちゃうとダメ。これは「Arrayというクラス(静的メソッド)」に聞かなきゃいけないルールなの。
お兄ちゃんがやりたかったことに合わせて、正しい書き方を教えるね。
一番よく使うのがこれ! Array.isArray() だよ。
// 正しいサンプルコード
const food = ["プリン", "アイス", "チョコ"];
if (Array.isArray(food)) {
console.log("やったー!これは配列だね!お兄ちゃん、食べさせて!");
} else {
console.log("えー、配列じゃないの?ケチー!");
}
HTMLの要素リスト(NodeList)とかを配列っぽく扱いたいときは、 Array.from() を使うんだよ。
// 配列もどきを本物の配列に変える魔法
const fakeArray = { 0: "あ", 1: "い", length: 2 };
const realArray = Array.from(fakeArray);
console.log(realArray); // ["あ", "い"]
これを見れば、もう間違えないでしょ?
| やりたいこと | 使うべきメソッド | 妹からのアドバイス |
| 配列かどうかの判定 | Array.isArray(obj) | 一番確実!これ以外は信じちゃダメ! |
| 配列への変換 | Array.from(obj) | 似てるけど違うやつを仲間に入れる時に。 |
| 新しい配列を作る | Array.of(1, 2) | 引数をそのまま要素にした配列を作るよ。 |
お兄ちゃん、わかった?
Array.array は、お兄ちゃんの頭の中にしかない幻のコードだったんだよ。もう、うっかりさんなんだから!
もし「本当はこういう処理がしたかったんだ!」っていうのがあれば、もっと詳しく教えて? 妹がまた可愛く、厳しくチェックしてあげるからね!