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

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

新規登録して質問してみよう
ただいま回答率
85.50%
React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

321閲覧

React Nativeにおける配列の結合

ykk12

総合スコア15

React Native

React Nativeは、ネイティブモバイルアプリ(iOS/Android)を作成できるJavaScriptフレームワークです。Reactと同じ設計のため、宣言的なコンポーネントでリッチなUIを開発することが可能です。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2019/03/03 06:42

2つの配列を以下のように結合したいと思っています。
簡単に実装する方法はありますでしょうか?

それともやはりforループで1つずつ結合していく必要があるのでしょうか?

▼配列1

React

1{ 2 { "id": "1", "title": "問題1" , "type": "list" }, 3 { "id": "2", "title": "問題2" , "type": "list" }, 4 { "id": "3", "title": "問題3" , "type": "list" }, 5 { "id": "4", "title": "問題4" , "type": "list" }, 6 { "id": "5", "title": "問題5" , "type": "list" }, 7}

▼配列2

React

1{ 2 { "id": "1", "title": "問題1" , "wrong": "1" }, 3 { "id": "3", "title": "問題3" , "wrong": "2" }, 4 { "id": "5", "title": "問題5" , "wrong": "0" }, 5}

▼結合結果

React

1{ 2 { "id": "1", "title": "問題1" , "type": "list" , "wrong": "1"}, 3 { "id": "2", "title": "問題2" , "type": "list" }, 4 { "id": "3", "title": "問題3" , "type": "list" , "wrong": "2" }, 5 { "id": "4", "title": "問題4" , "type": "list" }, 6 { "id": "5", "title": "問題5" , "type": "list" , "wrong": "0" }, 7}

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは

以下でどうでしょう?

javascript

1const ar1 = [ 2 { id: 1, title: "問題1" , type: "list" }, 3 { id: 2, title: "問題2" , type: "list" }, 4 { id: 3, title: "問題3" , type: "list" }, 5 { id: 4, title: "問題4" , type: "list" }, 6 { id: 5, title: "問題5" , type: "list" }, 7]; 8 9const ar2 = [ 10 { id: 1, title: "問題1" , wrong: "1" }, 11 { id: 3, title: "問題3" , wrong: "2" }, 12 { id: 5, title: "問題5" , wrong: "0" }, 13]; 14 15const ar = ar1.map(e1 => Object.assign({}, e1, ar2.find(e2 => e1.id === e2.id ))); 16 17console.log(ar); 18

上記に含まれるコード

javascript

1const ar = ar1.map(e1 => Object.assign({}, e1, ar2.find(e2 => e1.id === e2.id )));

では、

  • find によって idが特定の値の要素を ar2 から探すので、 ar2 の要素は(id の昇順などの)何らかの規則で並んでいる必要はありません。

  • ar1 の要素にar2 の要素のプロパティをマージするときに、 Object.assign()を使っているので、ar2の要素の全プロパティが ar1 の要素に上書きでコピーされます。

これを確かめるコードが以下です。

参考になれば幸いです。

投稿2019/03/07 01:45

編集2019/03/07 07:24
jun68ykt

総合スコア9058

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問