1

操作のために株式市場データを保存する必要があります。どちらがより効率的で、

1) OPEN、HIGH、LOW、CLOSE、日付 AS IN の多次元配列としてデータを保存する

//Data array stored in a array
var tickdata = new Array();
tickdata.push([open,high,low,close,volume,date])

2)以下に示すように、オブジェクトオブジェクトとしてデータを保存します

function dailyData(open, high, low, close,volume,date)
{
   this.open = open;
   this.high = high;
   this.low = low;
   this.close = close;
   this.volume=volume;
   this.date=date;
}
var data = new Array();
data[0] = new dailyData(1017.50,1032.50 ,997.50, 1025.40,4187510,'07-Jan-2005');
4

1 に答える 1

1

私の意見では、設定値を編集して動作を変更できるため、2番目の方法の方が保守が簡単です。

最初のオプションは読みにくいため、次の点を考慮してください。

function sortData(data,index){
  data.sort(function(a,b){
   if(a[index]>b[index]){return 1;}
   if(a[index]<b[index]){return -1;}
   return 0;
  });
}
sortData(data,0);// sorts on open

2 番目のオプションの方が読みやすい場合があります。

function sortData(data,index){
  data.sort(function(a,b){
   if(a[index]>b[index]){return 1;}
   if(a[index]<b[index]){return -1;}
   return 0;
  });
}
sortData(data,"open");// sorts on open

特に、複数の列で並べ替えたい場合。値を取得する方が明らかに読みやすい: data[0][0] or data[0]["open"] or data[0].open

出力コールドの書式設定は、次の方法で簡単に実行できます。

function dailyData(open, high, low, close,volume,date){
   //checking if data is valid comes here, maybe setting the
   // right type for the values (like date as date instead of string)
   this.open = open;
   this.high = high;
   this.low = low;
   this.close = close;
   this.volume=volume;
   this.date=date;
   this._dateYear={
      rerurn this.date.getFullYear();
   }
   this.dateYear=this._dateYear();
}

あなたの質問に答える(しない):オプション2を使用してパフォーマンスが低下するかどうかはわかりませんが、オブジェクトの大きな配列を使用しましたが、古いブラウザでも問題はありませんでした。

于 2013-03-05T06:47:44.470 に答える