我需要存储股票市场数据以进行操纵。哪个更有效率,
1)将数据存储为多维展示阵列,用于打开,高,低,关闭,日期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');
答案 0 :(得分:1)
在我看来,第二个更容易维护,因为你可以编辑设置值来改变行为。
第一个选项难以阅读,请考虑以下因素:
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
其中第二个选项可能更容易阅读:
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]或data [0] [“open”]或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获得性能损失,但是我使用了大型对象数组,即使在较旧的浏览器上也没有问题。