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

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

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

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

Q&A

解決済

1回答

975閲覧

JavaScript 配列に関する質問

ah6BD2gZo5GnjnT

総合スコア46

JavaScript

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

0グッド

0クリップ

投稿2020/10/08 07:58

{ 1: "a", 2: "b" };
上のオブジェクトを
[{a: "1"}, {b: "2"}](値を取り出すであり、出力ではない)
の形に直したいのですが、
なかなか良い解答が思いつきません。

私の書いたコードは以下です。

JavaScript

1let object = { 1: "a", 2: "b" }; 2const result = Object.keys(object).forEach((key) => { 3 return `{${object[key]}: "${key}"}`; 4});

分からない点は、resultの部分をどうやってobjectに紐付けるかです。
mapやfilter関数を使うべきでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

mapやfilter関数を使うべきでしょうか?

そうですね。
forEachは値を返しませんので(正確に言うと、undefinedを返す)、
質問者さんの意図通りの配列を得るには、mapが最も適当なメソッドです。
reduceでもいける)
あと、文字列ではなく、オブジェクトを返すべきでしょう。
(今回の質問の要件の場合、オブジェクトとして返そうとした時に、その部分でテンプレートリテラルは使用できませんので、
普通にオブジェクトとして宣言する)

javascript

1let object = { 1: "a", 2: "b" }; 2 3const result = Object.keys(object).map(key => { 4 const retObj = {}; 5 retObj[object[key]] = key; 6 return retObj; 7});

また、Object.keysより、Object.entriesの方がいいかもしれません。

javascript

1let object = { 1: "a", 2: "b" }; 2 3const result = Object.entries(object).map(val => { 4 const retObj = {}; 5 retObj[val[1]] = val[0]; 6 return retObj; 7});

投稿2020/10/08 08:15

編集2020/10/08 08:20
miyabi_takatsuk

総合スコア9555

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

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

ah6BD2gZo5GnjnT

2020/10/08 09:36

分かりやすい回答ありがとう御座います。Jsは勉強して1ヶ月程度なんですが、色々調べて、自分なりにコードを記述していますが、なかなかストレートで回答を導くことが難しいですが、これで上達は出来るのでしょうか?不安です。
miyabi_takatsuk

2020/10/08 09:49

始めて1ヶ月なんてそんなもんです。 1年やってそれだと怪しくなりますが、 まだ、不安に思う段階では到底ありません。 まずは1年みっちりやってみてはいかがでしょうか。
miyabi_takatsuk

2020/10/08 10:24

解決したのであれば、BAを選出するか、自己解決の投稿をして、質問を閉じましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問