ある二次元配列を使って下記の条件で別の二次元配列としたいです。
当初の二次元配列は要素[a,b,c,d]で構成されており、a~dのどれか1つにだけ値が入っており、他は""が入っている。
例えば
Youso=[ [5,"","",""] , [6,"","",""] , ["",7,"",""] , [5,"","",""]]とする。対応する要素名を
Youso=[[a1,b1,c1,d1] , [a2,b2,c2,d2] , [a3,b3,c3,d3] , [a4,b4,c4,d4]]とする。
これを
\\\\\\\\\\\\\\\\\\\\\\
条件1.各要素の""以外の数値を取り出す。ただし、同じ値がある場合は1回だけ取り出す。
例:aについて
aの""以外の数値はa1の5、a2の6、a4の5。a1とa4は同じ値なのでaの取り出す数値は5、6。
同様にしてbは7、cは数値なし、dは数値なし。
\\\\\\\\\\\\\\\\\\\\\\
条件2.各要素から取り出した数値の個数の最大値の数だけ一次配列を持つ新しい二次元配列NewYousoを作る。
そこに条件に応じて適切な値を入れる。
aで取り出した数値の個数は2個、bは1個、cは0個、dは0個なので各要素から取り出した数値の個数の最大値は
aで取り出した数値の個数、即ち2個となる。つまりNewYousoは2個の1次配列を含む2次配列とする。
つまりNewYousoは
NewYouso=[ [A1,B1,C1,D1],[A2,B2,C2,D2] ]
という形の2次配列とする。
A1にはaから取り出した1つ目の数値(a1の値:5)
A2にはaから取り出した2つ目の数値(a2の値:6)を入れる。
B1にはbから取り出した1つ目の数値(b3の値:7)
B2にはbから取り出した2つ目の数値を入れるが、それは存在しないので""を入れる。
同様にC1、C2、D1、D2も対応する取り出した数字がないので""を入れる。
\\\\\\\\\\\\\\\\\\\\\\
最終的には
NewYouso=[[5,7,"",""],[6,"","",""]]
となる。
これをGoogle Apps Scriptで組みたいです。
やりたいことがうまく記述できていないですがアドバイスをよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/09 06:50