このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
Tag Cloud
このページへのアクセス
今日: 4 / 昨日: 0
総計: 428
- Dokuwiki.fl8.jp(249)
- 13 CentOS6メール設定(14)
- 34 UnboundでHA構成(12)
- 02 ProFTPD(12)
- FreeBSD カーネル再構築(11)
最近の更新
このページへのアクセス
今日: 4 / 昨日: 0
総計: 428
GASで変数をソートしようとした時エラーがでました。
どうも数10個の少ない配列だとこのコードでもエラーはでない。
配列の数が多くなってくると失敗するみたいです。
配列の数以外の原因はつかめず。。。
outputValues.sort(function(a, b){ if (a[1] > b[1]) return 1; if (a[1] < b[1]) return -1; return 0; });
java.lang.IllegalArgumentException: Comparison method violates its general contract!
比較方法がその一般契約に違反しています
今回の場合は、変数の配列をソート後にスプレッドシートに書き込もうとしていたので、
逆にスプレッドシートに書き込んだ後に、下記でソートする事で対応しました。
A-Cのセルに書き込んで、A行でソート
newItmeSheet.getRange('A' + START_ROW + ':' + 'C' + (START_ROW + outputValues.length - 1)).sort(1);