首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将未标记的数组排列成有标签的数组?

如何将未标记的数组排列成有标签的数组?
EN

Stack Overflow用户
提问于 2021-08-26 11:00:37
回答 4查看 62关注 0票数 0

我正在为印度股票市场做一个交易机器人。我有这种形式的股票数据。

代码语言:javascript
复制
data = [[ 1627875900, 434.75, 435.8, 432.55, 434.9, 1750806 ], [ 1627876800, 434.75, 435.2, 432.7, 433, 905388 ], [ 1627877700, 432.9, 433.75, 431.8, 433.55, 689338 ],...........]

按顺序表示为

代码语言:javascript
复制
[[time stamp, Open Price, High Price, Low Price, Close Price, Volume], [.....]]

我想把它安排在标签数组中

代码语言:javascript
复制
{ open: [...], close: [...], high: [...], low: [...], volume: [...] }

我使用的是TALIB,它使用这种形式的数据来使用指示器。

我看到这是用Python和熊猫做的,但是需要用javascript.来解决。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-08-26 11:12:38

这里是数据操作的一个例子。

代码语言:javascript
复制
const data = [[ 1627875900, 434.75, 435.8, 432.55, 434.9, 1750806 ], [ 1627876800, 434.75, 435.2, 432.7, 433, 905388 ], [ 1627877700, 432.9, 433.75, 431.8, 433.55, 689338 ]];
const open = [], close = [], high = [], low = [], volume = [];

data.forEach(elm => {
    open.push(elm[1])
    high.push(elm[2])
    low.push(elm[3])
    close.push(elm[4])
    volume.push(elm[5])
});

const result = {open, high, low, close, volume};

console.log(result);

票数 0
EN

Stack Overflow用户

发布于 2021-08-26 11:15:03

试试这个:

代码语言:javascript
复制
const data = [
  [1627875900, 434.75, 435.8, 432.55, 434.9, 1750806],
  [1627876800, 434.75, 435.2, 432.7, 433, 905388],
  [1627877700, 432.9, 433.75, 431.8, 433.55, 689338]
]
const result = {
  open: [],
  high: [],
  low: [],
  close: [],
  volume: []
}
data.forEach(item => {
  result.open.push(item[1])
  result.high.push(item[2])
  result.low.push(item[3])
  result.close.push(item[4])
  result.volume.push(item[5])
})

console.log(result)

票数 0
EN

Stack Overflow用户

发布于 2021-08-26 11:35:31

可以使用zip函数按索引压缩嵌套数组,并将结果传递给预期数据形状的构造函数。

代码语言:javascript
复制
const zip = (...r) => [...r[0]].map((_, c) => r.map(s => s[c]));

const Data = ([_timestamp, open, close, high, low, volume]) => ({ open, close, high, low, volume });

// usage
const data = [[1627875900, 434.75, 435.8, 432.55, 434.9, 1750806], [1627876800, 434.75, 435.2, 432.7, 433, 905388], [1627877700, 432.9, 433.75, 431.8, 433.55, 689338]];

const result = Data(zip(...data));

console.log(result);
代码语言:javascript
复制
.as-console-wrapper { max-height: 100% !important; top: 0; }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68937294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档