과거 시장 데이터 매핑

cri.dev에 원래 게시됨

시장 데이터는 일반적으로 배열의 배열로 표시되며 각 항목은 주어진 기간 동안 시장의 "스냅샷"을 나타내는 데이터 포인트입니다.

각 데이터 포인트에는 타임스탬프, 시가/종가, 고가/저가, 이 기간의 거래량과 같은 정보가 포함되어 있습니다.



다음은 시장 LTC-EUR 에 있는 통화 쌍gdax에 대한 몇 가지 데이터 포인트의 최근 샘플입니다.

const marketData = [
  [
    1513025761,     // time
    161,            // low
    163.11,         // high
    162.98,         // open
    162.67,         // close
    823.99626973    // volume
  ],
  [
    1513024062,
    157.22,
    164.01,
    157.5,
    163,
    5343.671050650007
  ]
]


객체 배열에 매핑



보다 즐거운 객체 배열을 사용하려면 다음과 같이 명명된 속성을 사용하여 배열 구조를 객체에 매핑할 수 있습니다.

marketData.map(h => ({
  time: h[0],
  low: h[1],
  high: h[2],
  open: h[3],
  close: h[4],
  volume: h[5]
}))


결과는 다음과 같습니다.

[
  {
    "time": 1513025761,
    "low": 161,
    "high": 163.11,
    "open": 162.98,
    "close": 162.67,
    "volume": 823.99626973
  },
  {
    "time": 1513024062,
    "low": 157.22,
    "high": 164.01,
    "open": 157.5,
    "close": 163,
    "volume": 5343.671050650007
  }
]


키별로 그룹화된 객체 배열에 매핑



데이터를 키별로 그룹화하는 것도 흥미로울 수 있습니다.

각 키를 해당 값의 배열로 줄임으로써 이를 달성할 수 있습니다.

Object.keys(marketData[0]) // ['time','low','high','open','close','volume']
.reduce((acc, key => ({
  ...acc,
  [key]: marketData.map(data => data[key]) // returns an array of values for each key
}), {})




{
  "time": [1513024062, 1513025761],
  "low": [157.22, 161],
  "high": [164.01, 163.11],
  "open": [157.5, 162.98],
  "close": [163, 162.67],
  "volume": [5343.671050650007, 823.99626973]
}



에서 나와 함께 이러한 생각에 대해 토론하십시오!

cri.dev에 원래 게시됨
➜ christian-fei.github.io git:(마스터)

좋은 웹페이지 즐겨찾기