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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

484閲覧

jQueryにおける文字列比較が分かりにくいです。

taka_oct092018

総合スコア133

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2022/09/26 10:07

編集2022/09/27 12:06

文字列の比較においてreturn文で-1,0,1を返す処理は、
下記の編集後と同様の内容を行っていると解釈していいのでしょうか?
よろしくお願い致します。
改訂新版jQuery本格入門 P191より引用

HTML5

1<body> 2 <div> 3 <h4 id="head-1">jQuery</h4> 4 <h4 id="head-2">jQuery UI</h4> 5 <h4 id="head-3">JavaScript</h4> 6 <h4 id="head-4">CSS</h4> 7 <h4 id="head-5">HTML</h4> 8 </div> 9</body> 10``` 11 12```jQuery 13$(function() { 14 15 // <h4 id="head-3">以降を抽出 16 const webtech = $('h4').slice(2); 17 webtech.length; 18 19 // 要素を追加 20 const size = webtech.push($('<h4 id="head-6">Flash</h4>')[0]); 21 22 // <h4 id="head-4">、<h4 id="head-5">を新たなDOMオブジェクトと入れ替え 23 webtech.splice(1, 2, 24 $('<h4 id="head-4">CSS3</h4>')[0], 25 $('<h4 id="head-5">HTML5</h4>')[0] 26 ); 27 28 // テキストの内容に基づいて並び替え 29 webtech.sort(function(a, b) { 30 const at = $(a).text(); 31 const bt = $(b).text(); 32 if (at < bt) { // @@@@@@@@@@ 疑問の箇所 @@@@@@@@@@@@ 33 return -1; 34 } else if (at > bt){ 35 return 1; 36 } else { 37 return 0; 38 } 39 }); 40 41 $('div') 42 .empty() 43 .append(webtech); 44}); 45``` 46```jQuery 47// 編集したコード ← ここは間違いであることが指摘されました 48webtech.sort(function(a, b) { 49 const at = $(a).text(); 50 const bt = $(b).text(); 51 return at - bt; 52}); 53``` 54

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

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

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

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

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

maisumakun

2022/09/26 10:14

jQuery標準では.sortはありません。どのように用意しましたか?
m.ts10806

2022/09/26 10:15

自分で書いたコードなのではないのですか? 出典明示してください。
guest

回答2

0

自己解決

「at < bt」が真ならば-1が返され、atをbtより小さい添字に並び替える。
「at > bt」が真ならば1が返され、atをbtより大きい添字に並び替える。
「at === bt」が真ならば0が返され、atとbtの並び替えは行われない。

投稿2022/09/27 12:06

taka_oct092018

総合スコア133

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

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

0

下記の編集後と同様の内容を行っていると解釈していいのでしょうか?

JavaScriptで引き算は数値専用の演算子です。数値に変換不能な文字列どうしで引き算を行った場合、結果は常にNaNです。

投稿2022/09/26 10:29

maisumakun

総合スコア145183

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

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

taka_oct092018

2022/09/26 11:03

maisumakun様、いつもアドバイスありがとうございます。 数値同士の比較の場合と勘違いしておりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問