[英]Live search returns “undefined” even though the JSON array contains “objects”
[英]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.