ここから本文です

Google App Script での配列操作の質問です。

ste********さん

2018/11/2400:01:23

Google App Script での配列操作の質問です。

data という名前の所与の二次元配列があっとして、その内容から act_data という
新しい二次元配列を構成したあとに、act_data の4列目の内容に基づいて昇順で
ソートするために、以下のようなスクリプトを書いたのですが、ソートが機能せず...

number_of_registered = data.length -1;
var act_data = [];
for ( var i = 1; i <= number_of_registered; i++ ) {
act_data.push([data[0][2],data[i][1],data[i][2],data[i][4],data[i][6]]);
act_data.push([data[0][3],data[i][1],data[i][3],data[i][5],data[i][6]]);
}

act_data.sort(function(a,b){return(a[3] - b[3]);});

比較関数の書き方:ソート基準の要素指定の書き方あたりに問題があるのでない
かと思いつつ、解決できず、どなたか正しい方法についてご教示くださいませ。

閲覧数:
7
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

バッキーさん

2018/11/2406:01:36

コードとしては正しいと思いますが、もしかしてソートの基準データが文字列ではないでしょうか?

その場合は、引き算では適切に比較できないと思いますよ。

一度こちらで試してみてください。

act_data.sort(function(a, b){
if (a[3] > b[3]) return 1;
if (a[3] < b[3]) return -1;
return 0;
});

  • 質問者

    ste********さん

    2018/11/2610:32:46


    ご教示のほど、ありがとうございます。
    文字列扱いだったようで、例示いただいたコードにて
    無事稼働いたしました。重ねて御礼まで。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる