🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1698閲覧

JavaScriptの日付のソートの仕方を教えて下さい

yoshi11

総合スコア2

ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/03/29 22:08

Kindle蔵書一覧を取得する方法 こちらの記事の下記のスクリプトを使ってKindle蔵書一覧を取得をしているのですが、JavaScriptでこのデータのpurchaseDateをソートする方法をどなたかご教示いただけないでしょうか。
JavaScriptをあまり触ったことがないため、どこから手をつければよいのか八方塞がりの状態となっております。

ご意見や参考になる記事等をご教示いただけると嬉しいです。

getKindleCsv = function () { const FILE_NAME = 'Kindle.csv'; var db = openDatabase('K4W', '3', 'thedatabase', 1024 * 1024); // Set CSV header var csvData = "ASIN,Title,Authors,PurchaseDate\n"; db.transaction(function (tx) { tx.executeSql('SELECT * FROM bookdata order by title;', [], function (tx, results) { var len = results.rows.length; for (i = 0; i < len; i++) { var result = results.rows.item(i); var asin = result.asin; var title = result.title; var authors = JSON.parse(result.authors); var purchaseDate = new Date(result.purchaseDate).toLocaleDateString(); // Remove double quotes and CRLF from title title = title.replace(/"/g, ''); title = title.replace(/\n|\r\n|\r/g, ''); // Take only first author var authorList = authors[0]; // Write out CSV Style csvData += '"' + asin + '","' + title + '","' + authorList + '","' + purchaseDate + '"\n' } // Export CSV File var bom = new Uint8Array([0xEF, 0xBB, 0xBF]); var blob = new Blob([bom, csvData], { type: 'text/csv' }); var url = (window.URL || window.webkitURL).createObjectURL(blob); var link = document.createElement('a'); link.download = FILE_NAME; link.href = url; document.body.appendChild(link); link.click(); document.body.removeChild(link); }); }); }; getKindleCsv();

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Web SQL Database からデータ取得後に JavaScript でソートしてもいいですが、SQLを変更してソート済みの結果を取得するのが一番簡単です。

JavaScript

1//タイトルの昇順でソート 2tx.executeSql('SELECT * FROM bookdata order by title;', [], function (tx, results) { 3 //(省略) 4}); 5 6//購入日の昇順でソート 7tx.executeSql('SELECT * FROM bookdata order by purchaseDate;', [], function (tx, results) { 8 //(省略) 9});

投稿2021/03/30 03:09

draq

総合スコア2577

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshi11

2021/04/01 23:10

無事に解決しました。ありがとうございます。 SQL外でどうにかするのかに焦点を当てていました。。。
guest

0

ソートなどの加工をするなら文字列として作成するのではなくて配列で作成した後
処置をして、文字列にする必要があるのであれば配列から生成する方が良いと思います

文字列のソートという事で、やってみた結果を記載します。

JavaScript

1lines=csvData.split("\n"); 2linesdata=lines.slice(1,lines.length-1); 3linesdata.sort(function(a, b) { 4 a1=a.split(",")[3] 5 b1=b.split(",")[3] 6 if (a1>b1){ 7 return 1; 8 } else if (a1<b1) { 9 return -1; 10 } else { 11 return 0; 12 } 13}); 14csvData =lines[0]+'\n'+linesdata.join('\n')+'\n'

結局配列にしてやる方法しか知りません…

投稿2021/03/29 22:32

xail2222

総合スコア1508

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshi11

2021/04/01 23:12

迅速な回答ありがとうございます。参考にさせていただきます!JavaScriptの配列について勉強になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問