簡體   English   中英

Javascript:訪問單個元素時,對象數組返回未定義。 即使其中保存了 696 個對象

[英]Javascript: Array of Objects is returning undefined when accessing to a single Element. Even though there are 696 Objects saved in it

我是 Javascript 的初學者,所以如果這個問題有點明顯,我已經很抱歉了。 所以我的練習包括在 d3 的幫助下保存來自 csv 文件的信息。 之后我只想顯示該數組的第一個元素。

當我執行console.log(editedData)時,它在控制台中出現一個包含 696 個元素的Array(696)但是當我嘗試執行console.log(editedData[0])時,控制台顯示undefined 起初我認為這種行為是由於同步沖突而發生的,但在使用 Promises 后,我仍然得到相同的結果......

 const editedData = []; const organizedData = () => { return new Promise((resolve, reject) => { d3.csv("testData.csv").then(function(data){ data.map( element => { const dateAndTime = element.date.split(" "); const dataBlock = { date: dateAndTime[0], time: dateAndTime[1], testInfo: element.info1, testInfo2: element.info2, testInfo3: element.info3 } editedData.push(dataBlock); }); }); resolve(); }); } const diplayData = () => { //console.log(editedData) ==> Array(696) //console.log(editedData) ==> undefined console.log(editedData[0]); } organizeData().then(displayData());

有人可以幫我解決這個問題嗎? 我想知道為什么會出現這個問題,我該如何解決?

您需要在 d3.csv 然后 function.. 在 data.map ZC1C425268E178A8 之后調用 resolve

Promise.resolve()必須有結果值。

const editedData = [];

const organizedData = () => {
  return new Promise((resolve, reject) => {
    d3.csv("testData.csv").then(function(data){
      data.map( element => {
        const dateAndTime = element.date.split(" ");
        const dataBlock = {
          date: dateAndTime[0],
          time: dateAndTime[1],
          testInfo: element.info1,
          testInfo2: element.info2,
          testInfo3: element.info3
        }
        editedData.push(dataBlock);
      });
    });
    resolve(editedData);
  });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM