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

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

詳細はこちら
JavaScript

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

Q&A

解決済

3回答

2216閲覧

連想配列をforでまわすには

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

0グッド

0クリップ

投稿2019/10/19 01:21

連想配列をforで処理する時自分はいつも以下の書き方で書いているのですが、
以下の書き方だと、データ使用時にobj[keys[i]]と二重[]になるのが見難いです。
もっとシンプルな書き方はあるのでしょうか?
for in 以外で。

JavaScript

1 2let obj = {1:”犬”, 2:”猫”, 3:”鳥”}; 3const keys = Object.keys(obj); 4for(let i=0, end=keys.length; i < end; i++){ 5 let data = obj[keys[i]]; 6} 7

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

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

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

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

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

guest

回答3

0

Object.values()を使えば良いのでは?polyfillも有りますよ

js

1let obj = { 1: "犬", 2: "猫", 3: "鳥" }; 2const values = Object.values(obj); 3for(let i=0, end=values.length; i < end; i++){ 4 let data = values[i]; 5 console.log( data ); 6}

投稿2019/10/19 02:15

oikashinoa

総合スコア2826

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

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

退会済みユーザー

退会済みユーザー

2019/10/19 13:32

ありがとうございます!
guest

0

こんにちは

ループ本体で、key と value の両方を使うときは、Object.entries を使うこともできます。
ご質問のタイトルに

連想配列をforでまわすには

とありましたので、forループとあわせて使うには、以下のように for ( ・・・ of ・・・ ) を使います。

javascript

1const obj = { 1: "犬", 2: "猫", 3: "鳥" }; 2 3for (let [key, value] of Object.entries(obj)) { 4 console.log(`key:${key}, value:${value}`); 5}

または、for ( ・・・ of ・・・ ) の替わりに forEach を使うと、以下です。

javascript

1const obj = { 1: "犬", 2: "猫", 3: "鳥" }; 2 3Object.entries(obj).forEach(([key, value]) => { 4 console.log(`key:${key}, value:${value}`); 5});

以上、参考になれば幸いです。

投稿2019/10/19 03:08

jun68ykt

総合スコア9058

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

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

退会済みユーザー

退会済みユーザー

2019/10/19 13:33

ありがとうございます!
guest

0

ベストアンサー

forEachとか。

js

1let obj = {1:'犬', 2:'猫', 3:'鳥'}; 2Object.keys( obj ).forEach( key => { 3 console.log( obj[ key ] ); 4} )

投稿2019/10/19 01:34

kei344

総合スコア69596

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

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

退会済みユーザー

退会済みユーザー

2019/10/19 13:32

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問