すみません、ある配列に値を追加する(同じ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);
大変お手数ですがどなたかわかる方ご教示頂ければと思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。