実現したいこと
GAS内で下記のような多次元配列を'key2'の数値で大きい順から小さい順にソートして大きい方から順にkey3のvalueを1,2,3といった具合に変更したい
array = [ [ '1', { key1:1, key2:100, key3:0 } ], [ '2', { key1:2, key2:2, key3:0 } ], [ '3', { key1:3, key2:10, key3:0 } ] ]; ⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩ array = [ [ '1', { key1:1, key2:100, key3:1 } ], [ '2', { key1:3, key2:10, key3:2 } ], [ '3', { key1:2, key2:2, key3:3 } ] ];
前提
上記の前半部分のソートのところで
array.sort((a, b) => { if(b.key2 > a.key2){ return 1; }else{ return -1; } });
こちらの記述でソートをかけようとしたところ
console.log(Object.entries(array)); ⇩ TypeError: array.sort is not a function
こちらの表示になってしまいつまずいております。
配列の構造的に違った書き方をする必要があるのでしょうか?
発生している問題・エラーメッセージ
TypeError: array.sort is not a function
該当のソースコード
GAS
1var array = 2 [ 3 [ 4 '1', 5 { 6 key1:1, 7 key2:100, 8 key3:0 9 } 10 ], 11 [ 12 '2', 13 { 14 key1:2, 15 key2:2, 16 key3:0 17 } 18 ], 19 [ 20 '3', 21 { 22 key1:3, 23 key2:10, 24 key3:0 25 } 26 ] 27 ]; 28 array.sort((a, b) => { 29 if(b.key2 > a.key2){ 30 return 1; 31 }else{ 32 return -1; 33 } 34 });

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/04/10 06:47