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

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

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

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

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

987閲覧

配列に値を追加したいです

inukujira

総合スコア130

JavaScript

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

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2021/01/22 10:42

すみません、ある配列に値を追加する(同じkey名なら片方にcolor追加する)方法がわからず苦戦しています、、。
以下、2つの配列があります。

【追加したい側の配列】

TypeScript

1 // 追加したい側 2 siteList = [ 3 { 4 key: "aaa", 5 value: "Aです", 6 sort: 1 7 }, 8 { 9 key: "bbb", 10 value: "Bです", 11 sort: 2 12 }, 13 { 14 key: "ccc", 15 value: "Cです", 16 sort: 3 17 }, 18 { 19 key: "ddd", 20 value: "Dです", 21 sort: 4 22 } 23 ];

【追加されたい側の配列】

TypeScript

1 // 追加されたい側 2 colorList = [ 3 { 4 key: "aaa", 5 color: { 6 a: "#111111", 7 b: "#222222", 8 c: "#333333" 9 } 10 }, 11 { 12 key: "bbb", 13 color: { 14 a: "#444444", 15 b: "#555555", 16 c: "#666666" 17 } 18 }, 19 { 20 key: "ccc", 21 color: { 22 a: "#777777", 23 b: "#888888", 24 c: "#999999" 25 } 26 }, 27 { 28 key: "ddd", 29 color: { 30 a: "#cccccc", 31 b: "#dddddd", 32 c: "#eeeeee" 33 } 34 } 35 ];

keyが同じならその配列にcolorを追加したいです。
【求める実行結果】

TypeScript

1 // 加工後 2 siteList = [ 3 { 4 key: "aaa", 5 value: "Aです", 6 sort: 1, 7 color: { 8 a: "#111111", 9 b: "#222222", 10 c: "#333333" 11 } 12 }, 13 { 14 key: "bbb", 15 value: "Bです", 16 sort: 2, 17 color: { 18 a: "#444444", 19 b: "#555555", 20 c: "#666666" 21 } 22 }, 23 { 24 key: "ccc", 25 value: "Cです", 26 sort: 3, 27 color: { 28 a: "#777777", 29 b: "#888888", 30 c: "#999999" 31 } 32 }, 33 { 34 key: "ddd", 35 value: "Dです", 36 sort: 4, 37 color: { 38 a: "#cccccc", 39 b: "#dddddd", 40 c: "#eeeeee" 41 } 42 } 43 ];

自分でやったことはforで追加されたい側の配列を取り出して、filterを利用してkey名が同じならcolorを追加できればと思ったんですが、私の理解が足りず思うように動きません。

TypeScript

1 for (let i in this.siteList) { 2 this.colorList.filter(function(data) { 3 if (this.siteList[i]["key"] == data["key"]) { 4 this.siteList[i].add["color"] = data.color; 5 } 6 }); 7 } 8 console.log(this.siteList);

大変お手数ですがどなたかわかる方ご教示頂ければと思います。

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

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

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

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

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

guest

回答1

0

自己解決

本件、以下コードで自己解決しました!
見てくださってありがとうございました。

siteList.map(function(item) { colorList.filter(obj => { if (obj.key === item.key) { item.color = obj.color; } }); });

投稿2021/01/22 11:59

編集2021/01/22 12:00
inukujira

総合スコア130

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問