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

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

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

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

jQuery

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

Q&A

解決済

2回答

726閲覧

複数の配列を使用して連想配列に作り替える方法

tomato01

総合スコア82

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2020/05/29 13:13

複数の配列を使用して連想配列(オブジェクト)に作り替える方法が知りたいです。

■現状の状態
var a = ["高橋","鈴木","佐藤"]
var b = ["30才","31才","32才"]
var c = ["京都","大阪","奈良"]

■変更したい形
[
{name: "高橋", age: "30才", area: "京都"},
{name: "鈴木", age: "31才", area: "大阪"},
{name: "佐藤", age: "32才", area: "奈良"}
]

おそらく、各配列から一つずつ取り出しループ処理していけば大丈夫そうな気しますが、
上記の場合のコードの記載方法がわかりません。調べてもconcatとかの配列の結合などしか確認ができませんでした。

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

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

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

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

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

guest

回答2

0

こんにちは

オブジェクトや配列の操作で便利なライブラリ、lodash を使うと以下で得られます。

javascript

1var result = _.zip(a, b, c).map(values => 2 _.zipObject(["name", "age", "area"], values))

追記

以下のようにすれば、_.zipObject は使わなくても済みました。

javascript

1var result = _.zip(a, b, c).map(([name, age, area]) => ({ name, age, area }))

投稿2020/05/29 13:33

編集2020/05/29 13:44
jun68ykt

総合スコア9058

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

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

tomato01

2020/05/29 13:45

ご回答を頂き誠にありがとうございます!こんなに便利なライブラリがあるのですね。とても勉強になりました。自分でも調べて見るようにします。ありがとうございました!
jun68ykt

2020/05/29 21:49

どういたしまして???? > とても勉強になりました。 とのことでよかったです。 lodash 、便利です。メソッドがたくさん用意されていますので、ドキュメントをざっと見て、「これが一番便利そう」と思ったものから一つずつ、自分のものにしていかれるとよいかと思います。
tomato01

2020/05/30 07:52

ご回答の件、どうもありがとうございました! ほぼJS初心者なんでまだ効率が良い書きかたなどもわからないのですが、lodashはとても便利そうとのことなのでしっかり勉強をしてみるようにします。
guest

0

ベストアンサー

単純にfor文でループ回して代入すれば良いのではないでしょうか?

JavaScript

1var a = ["高橋","鈴木","佐藤"] 2var b = ["30才","31才","32才"] 3var c = ["京都","大阪","奈良"] 4const ary = []; 5 6for (let i = 0; i < a.length; i++) { 7 ary[i] = {}; 8 ary[i].name = a[i]; 9 ary[i].age = b[i]; 10 ary[i].area = c[i]; 11} 12console.log(ary);

投稿2020/05/29 13:25

snogot

総合スコア134

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

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

tomato01

2020/05/29 13:48

ご回答を頂き誠にありがとうございます!forで回す場合はこうやってやるのですね。とても勉強になりました。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問