WEBデザイン・プログラミング関連の
情報発信を手掛ける STAND4U

HOME > WEB制作 > javascript > jQuery「makeArray」でオブジェクトを配列に変換する方法

jQuery「makeArray」でオブジェクトを配列に変換する方法

[景品表示法に基づく表記] 本コンテンツにはプロモーションが含まれています。

jQueryのメソッド「$.makeArray()」は、jQueryオブジェクトを「配列に変換」するメソッド

今回は、jQueryで「jQueryオブジェクトを配列に変換する」メソッド「$.makeArray()」について、その使い方をサンプルを交えて解説しよう。

$.makeArray()の機能とは?

$.makeArray()の機能

$.makeArray()は、「jQueryオブジェクトを配列に変換」できるメソッド。
$()が生成する「jQueryオブジェクト」は、配列のような役割を持つが厳密には配列ではない。本来の配列で使える.shift().pop().reverse()などのメソッドがそのままだと機能しないので、$.makeArray()などのメソッドで一旦「配列に変換」する必要がある。

例えばHTMLで次のようなリスト形式のjQueryオブジェクトを<li>apple</li><li>orange</li><li>peach</li>を配列に変換して["peach", "orange", "apple"]のようなデータに変える事ができる。

HTML
<button>ボタン</button>
<ol class="fruits">
 <li>apple</li>
 <li>orange</li>
 <li>peach</li>
</ol>
jQuery
$(function(){
  var myArray = $.makeArray($(".fruits li"));
  console.log(myArray);
});

console
["apple","orange","peach"]

$.makeArray()の構文

$.makeArray()メソッドで「jQueryオブジェクトを配列に変換する」構文

$.makeArray(オブジェクト)

$.makeArray()の応用「リストを先頭から順番に削除」する例

今回は.shift()という「配列の先頭を削除するメソッド」を利用して、リストタグを先頭から順番に削除する。

.shift()を使う為に「jQueryオブジェクト」を一旦$.makeArray()で「配列」に変更し、その配列に対して.shift()を実行し、またjQueryオブジェクトに戻して、元のHTMLを上書きするという流れだ。

HTML
<button>ボタン</button>
<ol class="fruits">
 <li>りんご</li>
 <li>みかん</li>
 <li>もも</li>
</ol>
jQuery
$(function(){
  $("button").on("click",function(){
     var myArray= $.makeArray($(".fruits li"));
     myArray.shift();
     $(".fruits").html($(myArray));
  });
});

$.makeArrayメソッドは$.makeArray(jQueryオブジェクト)で「配列」に変換できるので

var myArray= $.makeArray($(".fruits li"));

としてmyArrayに配列を格納する。

次に配列を格納したmyArrayに対してshiftメソッドを適用して配列の先頭を削除する。

myArray.shift();

最後に.html()メソッドを使って、$(".fruits")のHTMLの中身を書き換える。

$(".fruits").html($(myArray));

この時myArrayは配列のままなので、$(myArray)としてjQueryオブジェクトに戻してから使わないといけない点に注意しておこう。

これで、ボタンをクリックする度に「リストを先頭から順番に削除する」事ができる!

HTML (jQuery反映前)
<button>ボタン</button>
<ol class="fruits">
 <li>りんご</li>
 <li>みかん</li>
 <li>もも</li>
</ol>

HTML (1回クリック)
<button>ボタン</button>
<ol class="fruits">
 <li>みかん</li>
 <li>もも</li>
</ol>

HTML (2回クリック)
<button>ボタン</button>
<ol class="fruits">
 <li>もも</li>
</ol>

HTML (3回クリック)
<button>ボタン</button>
<ol class="fruits">
</ol>

フロントエンドスキルをもっと早く・簡単にマスターしたい方へ!

JavaScriptやCSS・Sassなどフロントエンド学習は、初心者が「独学」で完全マスターするには半年以上かかり、相当根気よくやらないと挫折してしまうか、ライバルに出遅れてしまう…。

短期間でフロントエンド・WEBデザインをマスターするには?

私の経験だが、手軽なオンラインスクールを利用した方が圧倒的に早かった。独学だと「何からどこまで勉強すれば良いかわからない」ものを、これだけ学習すればOKというポイントをおさえた教科書で学習しながら、わからない点を質問し放題なので、多少の出費は必要だが2ヶ月程度でサクッと学べたので逆に経済的だった!(実際に私がオンラインスクールを受講して体感

では「オススメはどのスクール?」とよく聞かれるのだが、たった1つのおすすめスクールがある訳でなく、その人によって最適なスクールが違う

スクール選びのポイント
  • 学習スタイルが自分に合っているか?
  • 低価格でコスパの良い学習料金か?
  • 講師に質問しやすい環境か?
  • 無料体験できるスクールか?

数あるスクールの中から、実際に受講してわかった事や現役プロならでは目線で厳選・比較したこちらの記事「現役プロ比較!短期 「WEBデザインスクール12校」おすすめランキング!」を参考に自分に合ったスクールを探そう↓

jQuery「$.makeArray()」でオブジェクトを配列に変換する方法のまとめ

以上が、jQueryで「$.makeArray()を使って、jQueryオブジェクトを配列に変換する」方法でした。

その他のjQueryメソッドについて確認したい方は、jQueryメソッドを一覧で解説したこちらの記事を確認しておこう!


※当記事の掲載内容は執筆現在の個人の見解・調査によるもので、動作・サービス等を保証するものではありません。最新情報は各公式サイトでご確認頂き、購入・契約・データ作成等はご自身の判断・責任でお願いします。 免責事項

関連記事

この記事を書いた人

編集長

WEBデザイン・グラフィックデザイン歴:約18年、HTMLコーディング、jquery、wordpress、イラストなど本業とし、WEBデザインコンサル・プログラミング・ライティング等にも勤しんでいます

プロフィールはこちら

Twitter @stand_4u_ をフォロー

新着記事