Javascript 如何访问嵌入在json对象中的数组。调用时对象的属性未定义

Javascript 如何访问嵌入在json对象中的数组。调用时对象的属性未定义,javascript,ecmascript-6,handlebars.js,Javascript,Ecmascript 6,Handlebars.js,我试图映射属性“fiveDays”,但当我调用它时,控制台返回 TypeError:data.fiveDays未定义 据我所知,调用属性的标准方式通常是data.FiveDays 对象的示例: { "symbol": "ACB", "price": "0.7001", "date": "2020-03-12", "fiveDays": [ [ "2020-03-12", { "1. open": "0.6801",

我试图映射属性“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元素和使用Stocks类创建的对象。在这里,我尝试调用
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});
    };
数据来自侦听单击事件的
文档.queryselector
语句

 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


问题是如何访问对象内部的数组,以便对其进行分解

如何获取
数据以及在何处调用
displayHistroicalData
?displayHistoricalData如下所示:``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')、新股({symbol:symbolInput}));evt.preventDefault();}});``和“数据”是从Stocks类传递的。您是否对数据进行了控制台并查看了?也许这有帮助:@sathish1409是的,我进行了。在控制台I中,调用对象的属性没有问题。当它保存在main.js中时,我尝试控制台.log()它会说,对象无法定义。我还应该提到,我正在使用node.js传输代码,不确定这是否有区别。