我有一个从CSV加载OHCLV数据的函数,此时该函数获取所有值,并返回它们,这是有效的
我想要的是只返回最后的N
值。
例如,对于1000个值,我只需要最后100个值。
CSV显示如下:
date,open,high,low,close,volume
2013-03-25 16:00:00,76.31,77.5,76.31,77.5,117.65500211
2013-03-25 16:15:00,77.61,77.89,77.1,77.1,36.04786927
[...]
2022-12-22 17:15:00,16646.0,16649.0,16611.0,16623.0,37.57992574
2022-12-22 17:30:00,16626.0,16626.0,16585.0,16608.0,14.26339254
下面是函数
const getOHCLVData = async (path) => {
const res = await fetch(path);
const resp = await res.text();
const cdata = resp.split('\n').slice(1).map((row) => { // slice(1) skip the header
const [date, open, high, low, close, volume] = row.split(',');
return {
time: new Date(`${date}`).getTime() / 1000,
open: open,
high: high,
low: low,
close: close,
volume: volume,
};
});
return cdata;
};
// Call function
getOHCLVData(myfile.csv)
我应该试着给function添加一个新参数,并执行如下操作:cdata.lenght - NumberValue
有什么建议吗?
1条答案
按热度按时间olhwl3o21#
这是对 * 兰迪·卡斯伯恩 * 评论的修正(新用户=低代表=不能评论)。
“将
.slice(1)
更改为.slice(-100)
-负值从数组末尾拉入。- Randy Casburn“您可能希望向函数中添加默认变量。
把你的切片改成
请注意,
-1
的缺省值与.slice(1)
相同,因为我们使用-nValues
这应该可以添加您想要的功能,而不必强迫用户知道他们想要多少行。您不希望不必要地限制您的功能。