« 2次元配列(数値)のソート | トップページ | 配列複写 »

2018年10月16日 (火)

2次元配列のソート2

今回は、テキストファイルからデータを読込んでソートするスプリクトです。
2次元配列に取込む方法で、かなり試行錯誤しましたが、
データが2列の場合は、簡単なスプリクトにまとまりました。
arry[i]=data.split(sp)
i=i+1

<arry.txt>
5.25 2.27
1.38 4.56
4.53 3.72
3.19 1.96
2.87 5.41

<追記>
2列以上の場合は、slice()メソッドを利用します。
arry[i]=data.split(sp).slice(1,3)
 ⇒2列目と3列目を返します。

//2次元配列のソート(テキストファイル)
fs=new ActiveXObject( "Scripting.FileSystemObject" )
w=fs.CreateTextFile("sort.txt")
r=fs.OpenTextFile("arry.txt")
//
var arry=new Array()
//
i=0
sp=" " 
//テキストデータ読込み
while (!r.AtEndOfLine) {
data=r.ReadLine()
//2次元配列に変換
arry[i]=data.split(sp)
i=i+1
 }
//昇順ソート
var sort=arry.sort(
function(a,b){
    return(parseFloat(a[0])-parseFloat(b[0]))
    })
//sort.txtに書出し(結果確認)
for(i=0;i<=4;i++){
w.WriteLine(sort[i])
 }
w.Close()
r.Close()

|

« 2次元配列(数値)のソート | トップページ | 配列複写 »

コメント

>arry[i]=data.split(sp).slice(1,3)

2行にしたほうが理解しやすいと思います。
xy=data.split(sp);
array.push([xy[1],xy[2]]);

投稿: 通りすがり | 2018年10月19日 (金) 09時40分

通りすがりさん、こんばんは。

確かに、わかりづらいかもしれませんが、
配列の宣言も一度で済むし、
覚えてもらった方が良いと思ったので。

投稿: somem | 2018年10月19日 (金) 19時39分

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 2次元配列のソート2:

« 2次元配列(数値)のソート | トップページ | 配列複写 »