我需要存储股票市场数据以进行操纵。哪个效率更高,
1) 将数据存储为开盘价、最高价、最低价、收盘价、日期的多维数组,如
//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');
最佳答案
我认为第二个更容易维护,因为您可以编辑设置值来更改行为。
第一个选项较难阅读,请考虑以下因素:
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 是否会导致性能损失,但我使用过大型对象数组,甚至在较旧的浏览器上也没有问题。
关于javascript - 在 javascript、多维数组访问或对象访问中效率很高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15217319/