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

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

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

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

Q&A

解決済

3回答

843閲覧

連想配列の並べ変えについて教えてください。

kinsncn

総合スコア34

JavaScript

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

0グッド

0クリップ

投稿2020/05/03 05:04

編集2020/05/03 05:45

連想配列の要素を小さい順に並べ変えたいと思いますが、
以下のコードで何が問題でしょうか?
(超初心者です)

'use strict'; { let ar =[ {id:1,name:'morita'}, {id:2,name:'kenji'}, {id:4,name:'uro'}, {id:3,name:'ken'} ]; ar.sort(function(a,b) { if (a.id > b.id ) { return 1} else {return -1}; console.log(ar); }) }

コンソールには何も表示されません

以上 よろしくお願いいたします。

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

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

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

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

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

m.ts10806

2020/05/03 05:11

コードやエラーはマークダウンのcode機能を利用してご提示ください。 https://teratail.com/questions/238564 また、そもそもこのコードはどのように実行されているのでしょうか。
m.ts10806

2020/05/03 05:14

>(超初心者です) 「初心者アイコン」を質問につけられるので、そちらでご対応ください。質問本文やタイトルにわざわざ書く必要はありません。
m.ts10806

2020/05/03 05:48

初心者アイコン・・・
guest

回答3

0

ベストアンサー

console.log(ar) が絶対に実行されない場所にあるからかと思います。

javascript

1ar.sort(function(a,b) { 2 if (a.id > b.id ) { 3 // ここで関数を抜けるか 4 return 1 5 } else { 6 // ここで関数を抜ける 7 return -1 8 }; 9 // 絶対に上記二つのうちのいずれかの return が実行されているためここには到達しない 10 console.log(ar); 11})

投稿2020/05/03 05:13

R.Mizukami

総合スコア1086

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

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

kinsncn

2020/05/03 05:23

ありがとうございました。 consoleの場所を移動したらすぐ直りました。
think49

2020/05/03 05:28 編集

To: @kinsncnさん 修正依頼の@m.ts10806さんの指摘が無視されていますが、正当な指摘だと思います。
think49

2020/05/03 05:35

To: @kinsncnさん 念のため、追記しますが、私がいっているのは「回答」ではなくて「修正依頼」の方です。
kinsncn

2020/05/03 05:46

ただいま、修正したつもりですが、確認お願いします。
think49

2020/05/03 06:41 編集

> ただいま、修正したつもりですが、確認お願いします。 markdownは良いですが、初心者アイコンが付いていないようですね。 指摘した@m.ts10806さんに無言で返すのは、礼を欠いていると私は思います。
guest

0

console.log(ar) の位置がおかしいです。

JavaScript

1"use strict"; 2 3{ 4 let ar = [ 5 { id: 1, name: "morita" }, 6 { id: 2, name: "kenji" }, 7 { id: 4, name: "uro" }, 8 { id: 3, name: "ken" }, 9 ]; 10 11 ar.sort(function (a, b) { 12 if (a.id > b.id) { 13 return 1; 14 } else { 15 return -1; 16 } 17 18 console.log(ar); //これar.sortの外側に記述するのでは? 19 }); 20}

投稿2020/05/03 05:14

編集2020/05/03 05:16
draq

総合スコア2573

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

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

kinsncn

2020/05/03 05:29

ありがとうございました。 ご指摘通りです。
guest

0

console.log(ar);
ar.sort()の中の通らない場所で実行されてるからでは。
コードをきちんとインデント付ければ明らかです。

js

1'use strict'; 2 3{ 4 let ar = [{ 5 id: 1, 6 name: 'morita' 7 }, { 8 id: 2, 9 name: 'kenji' 10 }, { 11 id: 4, 12 name: 'uro' 13 }, { 14 id: 3, 15 name: 'ken' 16 }]; 17 18 ar.sort(function(a, b) { 19 if (a.id > b.id) { 20 return 1 21 } else { 22 return -1 23 }; 24//必ずreturnされるので通らない 25 console.log(ar); 26 }) 27} 28

「実行後」じゃないときちんとソートされたものにならないので、外に出してください。

投稿2020/05/03 05:13

編集2020/05/03 05:16
m.ts10806

総合スコア80861

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

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

kinsncn

2020/05/03 05:29

ありがとうございました。ご指摘どおりでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問