• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:jqueryで配列をMySQLのように扱えないか?)

jqueryで配列をMySQLのように扱えるか?

このQ&Aのポイント
  • jqueryで配列をMySQLのように扱う方法について知りたいです。項目の並べ替えや条件に合ったデータの取得などを実現したいですが、どのようにすればよいでしょうか?
  • 配列内の項目を条件に合わせて取得したり、並べ替えたりする方法についてjqueryで教えてください。
  • jqueryを使用して配列をデータベースのように操作する方法について教えてください。配列内の特定の項目でデータを絞り込んだり、並べ替えたりする方法について知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • shockatz
  • ベストアンサー率80% (153/191)
回答No.3

C#やVB.NETのような、マイクロソフトの言語には、統合言語クエリ=LINQ(Langage INtegrated Query)という、集合型データ処理専用の拡張モジュールが存在するため、ステートメントレベルで配列を一気にフィルタリングしたりできます。 LINQには、DBアクセス専用のLINQ for EFやLINQ for SQL、XML用のLinq XMLなどもありますが、もっとも汎用で使用されるのがLINQ for Onjectと呼ばれる、内部オブジェクト専用のLINQモジュールです。 で、そのJavascript版に、LINQ.jsというライブラリがあります。 こちらをご確認。 http://www.atmarkit.co.jp/fdotnet/dotnettips/1058linqjsbasic/linqjsbasic.html ちょっと文法的な慣れが必要ですが、集合型データの処理を革新する強力な手段になるでしょう。 また、LINQ.jsには、jQueryのチェイン・ステートメントに対応するタイプもあり、jQueryの構文中でそのまま使用できます。

macus
質問者

お礼

回答ありがとうございます! LINQですか・・・聞いたことないです(汗) でも参考サイトを見るとなんか出来そうな気がするのでチャレンジしてみます! ありがとうございます!

その他の回答 (3)

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.4

> まだ並べ替えでしか試していないのですが、DBから取ってくると数秒かかるのですが配列の中身を並べ替えて再表示だと1秒もかからず一瞬で出来たので それ、比較対処を間違えてませんか? DB から並べ替え後のデータを取得する場合、当然ながら DB からのデータ送信というコストがかかります。 もしあなたが「配列の中身を並び替え」た時間の計測が並び替え前のデータを用意した時点から行っていたなら、それは DB からのデータ送信コストを計算に入れることを忘れています。 本気で DB での並べ替えと配列での並べ替えを比較したいのなら、配列側は DB から未並び替えのデータを取得するところから計測を始めなくてはいけません。

macus
質問者

お礼

再び回答ありがとうございます。 比較対象が違うとかではなく、どちらが早いかだけです。 おっしゃる通り、「DB からのデータ送信というコスト」があるのでDBへのアクセスは1回だけにしたいのです。 現在、サイト開いた時の1回だけDBにアクセスしてデータを取って来ています。 その後の、並べ替えや条件表示の時にもう一度DBにアクセスするのではなく 取って来たデータで処理が出来れば早いと思い、どのように処理して良いか 分からないので質問させていただきました。 意図してる回答になっていなかったらすみません。

回答No.2

通常の配列処理なので,jQueryは全く関係しませんよね。 jQueryの対象分野は基本的にDOM要素で,通常セレクタによる選択を行うと思います。。 また,RDBMS側でフィルタリングできるのであれば,そちらの方が効率がよいのはANo.1の方の書かれている通りだと思います。 その上で,JavaScript側で処理する方法ですが, ・配列をループで回して,条件に合致していくものを別の配列に追加していく ・Array.filterを使ってフィルタリングする の2種類の方法が思いつきます。 前者は力業ですが,ほとんどの言語で実装できる方法になります。 後者に関しては,コールバック関数を使ってフィルタ条件を指定する方法で, 慣れていれば「filter」という名前で処理がわかりやすいのですが, コールバック関数に慣れていないとわかりにくく感じるかもしれません。 # jQueryなんかでコールバック関数は普通に使っていると思いますが。 refs) Array.filterに関して ・MDN (Mozilla Developer Network) https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/filter ・MSDN (Microsoft Developer Network) http://msdn.microsoft.com/ja-jp/library/ff679973.aspx

macus
質問者

お礼

回答ありがとうございます! すみません。jqueryとかjavascript自体使い始めて間もなく名前の意味とか何が出来るとか良くわからず質問してしまいました。 コールバックが何を意味してるかすらわからないので、filterは難しそうですね。 一応チャレンジしてみます。 参考URLまでありがとうございました。

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

最初からデータベースに入っているデータを扱えば? > 毎回数千データを取ってくると凄く時間がかかります。 とか言ってるけど、それはそれこそ問い合わせの SQL の時点で絞り込めばいいだけの話でしょうに。

macus
質問者

お礼

回答ありがとうございます。 まだ並べ替えでしか試していないのですが、DBから取ってくると数秒かかるのですが配列の中身を並べ替えて再表示だと1秒もかからず一瞬で出来たので、配列で処理する方法を探しています。

関連するQ&A