Я пытаюсь сопоставить свойство "fiveDays", но когда я вызываю его, консоль возвращает
TypeError: data.fiveDays не определено
Стандартный способ вызов собственности, как правило, будет data.FiveDays
из того, что я понимаю.
Пример объекта:
{
"symbol": "ACB",
"price": "0.7001",
"date": "2020-03-12",
"fiveDays": [
[
"2020-03-12",
{
"1. open": "0.6801",
"2. high": "0.7400",
"3. low": "0.6300",
"4. close": "0.7001",
"5. volume": "41546525"
}
],
[
"2020-03-11",
{
"1. open": "0.9620",
"2. high": "0.9820",
"3. low": "0.8500",
"4. close": "0.8587",
"5. volume": "21826334"
}
],
[
"2020-03-10",
{
"1. open": "1.0300",
"2. high": "1.0700",
"3. low": "0.9600",
"4. close": "0.9802",
"5. volume": "22182204"
}
],
[
"2020-03-09",
{
"1. open": "0.9601",
"2. high": "1.0900",
"3. low": "0.9000",
"4. close": "0.9490",
"5. volume": "27748756"
}
],
[
"2020-03-06",
{
"1. open": "1.2800",
"2. high": "1.2900",
"3. low": "1.1300",
"4. close": "1.1700",
"5. volume": "24907729"
}
]
]
}
Метод, который я использую в main. js, принимает элемент HTML и объект, который создается с классом Акции. Здесь я пытаюсь вызвать data.fiveDays
, чтобы он перебрал элементы массива и сопоставил их с новым объектом, который будет отображаться с помощью шаблона руля.
Метод:
const displayHistoricalData = (el, data) => {
// modify data to contain an array of day objects
let fiveDays = data.fiveDays.map(day => {
let {'1. open': open, '2. high': high, '3. low': low, '4. close': close} = day[1];
return {open, high, low, close, date: day[0]};
});
el.innerHTML = Handlebars.templates['stock-history']({history: fiveDays});
};
Данные поступают из оператора document.queryselector
, который прослушивает событие click.
document
.querySelector('.stock-display')
.addEventListener('click', (evt) => {
if (evt.target && evt.target.matches('button.btn-history')) {
let symbolInput = document.querySelector('#symbol').value;
displayHistoricalData(document.querySelector('.day-details'), new Stocks({symbol: symbolInput}));
evt.preventDefault();
}
});
Как вы можете видеть здесь, "данные" в getHistoricalData
происходят из класса Stocks
.
Вопрос в том, как я могу получить доступ к массиву, который находится внутри объекта так что я могу это разрушить?