どうも。櫻庭です。今回は既存のObject Arrayに新規Object Arrayを投入する方法について書き留めていきたいと思います。
スプレッドシートから取得した値を二次元配列のまま処理する場合は簡単に処理ができますが、一旦Object配列に変換した後に新規の値を追加したい場合は少し工夫が必要です。
通常の二次元配列では簡単に新しい配列の投入が可能
二次元配列にて新規配列を投入する方法として代表的な方法としては、
push()メソッドの利用。 push()メソッドに関してはネット上にも情報が溢れており、
感覚的にもわかりやす。
//二次元配列に新しい配列を追加
const array = [["プラン","詳細"],["ツイート","1日5回以上"]];
const newArray = ["GAS","もくもく会"];
array.push(newArray);
console.log(array)
//result:[ [ 'プラン', '詳細' ], [ 'ツイート', '1日5回以上' ], [ 'GAS', 'もくもく会' ] ]
ObjectArrayで新規ObjectArrayを追加するには
プロパティ値が違う場合、Object.assign()メソッドの使用をする。
const objArray = {"プラン":"ツイート","詳細":"1日5回以上"}
const objNewArray = {"方法":"GAS使用","内容":"英語ツイート2以上"}
Object.assign(objArray,objNewArray);
console.log(objArray)
//result:{ 'プラン': 'ツイート',
//'詳細': '1日5回以上',
//'方法': 'GAS使用',
//'内容': '英語ツイート2以上' }
現実的に使う方法例
実際にSSから取得したデータを処理する場合元のobjectArrayにデータが複数ある場合がほとんど。そうなると、SSから取得したデータは連想配列となります。
今回は一定ののObjectArrayをSSから取得した連想配列に追加する方法を紹介します。
const objArray = [{"プラン":"ツイート","詳細":"1日5回以上"},
{"プラン":"ブログ書く","詳細":"15時までに更新"}]
const objNewArray = {"工数":1}
for(const element of Object.keys(objArray)){
Object.assign(objArray[element],objNewArray);
}
console.log(objArray)
//result:[ { 'プラン': 'ツイート', '詳細': '1日5回以上', '工数': 1 },
// { 'プラン': 'ブログ書く', '詳細': '15時までに更新', '工数': 1 } ]
↑のように、for of文とobject.keys()メソッドを活用することで、各ObjectArrayに新規Objectを挿入することができます。
まとめ
Object.Assign()、Object.Keys()メソッドの使用方法は前回、前々回と紹介してきましたが具体的にはこのように使用することができます。 他にも使用方法はありますので、今回の内容を参考に今後この2つのメソッドを組み合わせて使う方法を学習してもらいたいと思います。
Comments