質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.47%
JavaScript

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

Q&A

解決済

2回答

6522閲覧

javascriptで配列を五十音順にソート

uer03108

総合スコア194

JavaScript

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

0グッド

2クリップ

投稿2019/01/08 22:50

こんにちは。
下記コードで配列を五十音順にソートできるかと思ったのですが、ソートされておりませんでした。
そのままソートしてもダメなのでしょうか。

参照

javascript

1 2//データ 3const aryData = [ 4 {id: "id_2", data: "データ2"}, 5 {id: "id_4", data: "データ4"}, 6 {id: "id_3", data: "データ3"}, 7 {id: "id_1", data: "データ1"} 8] 9 10//ソート(昇順) 11aryData.sort((a,b) => {return a.data - b.data;}); 12 13//表示 14console.log(aryData);

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

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

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

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

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

m.ts10806

2019/01/08 23:34

javascript 50音順 ソート で記事それなりに見つかりますが試してみましたか?
guest

回答2

0

javascript

1//データ 2const aryData = [ 3 {id: "id_2", data: "データ2"}, 4 {id: "id_4", data: "データ4"}, 5 {id: "id_3", data: "データ3"}, 6 {id: "id_1", data: "データ11"} 7] 8 9//ソート(昇順) 10aryData.sort((a,b) => a.data.localeCompare(b.data, "ja", { numeric: true })); 11 12//表示 13console.log(aryData);

MDN Array.prototype.sort()
非ASCII文字のソート

投稿2019/01/09 00:51

papinianus

総合スコア12705

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

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

0

ベストアンサー

数値の比較ではなく文字列の比較となるため、a-bの形では上手くいかないのではないかと。

文字列比較用のcompareFunctionにすると上手くいきます。

JavaScript

1//データ 2const aryData = [ 3 {id: "id_2", data: "データ2"}, 4 {id: "id_4", data: "データ4"}, 5 {id: "id_3", data: "データ3"}, 6 {id: "id_1", data: "データ1"} 7] 8 9//ソート(昇順) 10aryData.sort((a,b) => { 11 if(a.data < b.data){ 12 return -1; 13 } 14 if(a.data > b.data){ 15 return 1; 16 } 17 return 0; 18 }); 19 20//表示 21console.log(aryData);

js Studio .sort()
JS:配列の正しいソート方法

投稿2019/01/09 00:01

編集2019/01/09 00:03
madoka9393

総合スコア992

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問