Вытаскиваю данные с биржи, сначала торговую пару, а потом к ней несколько данных по таймфреймам. То есть
pairs: {
'EURUSD': {
'30m': {rsi, sma, ohlc, ...}
'1h': {rsi, sma, ohlc, ...}
}
}
Как это сделать?
if (!pairs.get(symbol)){
pairs.set(symbol, ???)
}
Как инициализировать содержимое двумя Map?
var symbol = 'EURUSD';
if (!pairs[symbol]) {
pairs[symbol] = {
'30m': {...},
'1h': {...}
};
}
там песочница
namespace qwa {
export type $pairs2map = (pairs: $pairs) => $map
export type $map2pairs = (map: $map) => $pairs
export interface $pairs {
[k: string]: {
[k: string]: $data
}
}
export type $map = Map<string, $mapB>
export type $mapB = Map<string, $data>
export interface $data {
rsi: any,
sma: any,
ohlc: any,
}
}
namespace qwa {
export const pairs2map: $pairs2map = pairs => {
let map: qwa.$map = new Map()
for (let keyI in pairs) {
let valI = pairs[keyI]
let mapB: qwa.$mapB = new Map()
for (let keyJ in valI) {
let data: qwa.$data = valI[keyJ]
mapB.set(keyJ, data)
}
map.set(keyI, mapB)
}
return map
}
}
namespace qwa {
export const map2pairs:qwa.$map2pairs = map => {
const pairs: qwa.$pairs = {}
map.forEach((mapB, keyI) => {
pairs[keyI] = {}
mapB.forEach((data, keyJ) => {
pairs[keyI][keyJ] = data
})
})
return pairs
}
}
TEST: {
let pairs = {
'EURUSD': {
'30m': { rsi: null, sma: null, ohlc: null, },
'1h': { rsi: null, sma: null, ohlc: null, },
}
}
const map = qwa.pairs2map(pairs)
const pairsFromMap = qwa.map2pairs(map)
console.log(pairsFromMap)
}
var qwa;
(function (qwa) {
qwa.pairs2map = pairs => {
let map = new Map();
for (let keyI in pairs) {
let valI = pairs[keyI];
let mapB = new Map();
for (let keyJ in valI) {
let data = valI[keyJ];
mapB.set(keyJ, data);
}
map.set(keyI, mapB);
}
return map;
};
})(qwa || (qwa = {}));
(function (qwa) {
qwa.map2pairs = map => {
const pairs = {};
map.forEach((mapB, keyI) => {
pairs[keyI] = {};
mapB.forEach((data, keyJ) => {
pairs[keyI][keyJ] = data;
});
});
return pairs;
};
})(qwa || (qwa = {}));
TEST: {
let pairs = {
'EURUSD': {
'30m': { rsi: null, sma: null, ohlc: null, },
'1h': { rsi: null, sma: null, ohlc: null, },
}
};
const map = qwa.pairs2map(pairs);
const pairsFromMap = qwa.map2pairs(map);
console.log(pairsFromMap);
}
new Map([
[yourKeyA: new Map()],
[yourKeyB: new Map()],
])
const pairs = new Map(),
symbol = 'EURUSD';
if (!pairs.has(symbol))
pairs.set(symbol, new Map([
['30m', new Map()], ['1h', new Map()]
]));
pairs.get('EURUSD').get('1h').set('rsi', { foo: 'bar' });
console.log(`pairs['EURUSD']['1h']['rsi'] is`,
pairs.get('EURUSD').get('1h').get('rsi')
);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня проблема Я создаю онлайн-тестЯ проверяю, что интернет был отключен с помощью плагина jquery checknet
Используя api стороннего сервиса я отправляю информацию наших заказовНа этом сервисе у заказов 3 статуса: новые, активные и завершенные
Мне нужно по клику на кнопку перекрасить соседний див в синий цветКомпонент кнопка, и компонент див находятся на одном уровне
у меня есть 2 компонента, мне необходимо чтобы при срабатывание события в компоненте "А" данные присваивались в форму компонента "B",