Javascript 如何将阵列数据推高一个范围
我需要第一个循环外部的时间数组的数据。当我console.log(time\u array)进入第一个循环时,我得到以下结果:Javascript 如何将阵列数据推高一个范围,javascript,arrays,mongodb,scope,Javascript,Arrays,Mongodb,Scope,我需要第一个循环外部的时间数组的数据。当我console.log(time\u array)进入第一个循环时,我得到以下结果: MongoClient.connect(CONNECTION_URL, { useNewUrlParser: true }, function (err, db) { if (err) throw err; var db = db.db("coinlib"); const userid = '5de2c1be7224c00e6723b7e3';
MongoClient.connect(CONNECTION_URL, { useNewUrlParser: true }, function (err, db) {
if (err) throw err;
var db = db.db("coinlib");
const userid = '5de2c1be7224c00e6723b7e3';
const time_array = [];
db.collection("users").findOne({ _id: ObjectID(userid) }, function (err, portfolio) {
if (err) throw err;
const portfolio_length = portfolio.portfolio.length;
for (let i = 0; i < portfolio_length; i++) {
db.collection("coin-data-24h").findOne({ ticker: portfolio.portfolio[i].ticker }, function (err, coin_data_24h) {
if (err) throw err;
for (let ii = 0; ii < portfolio.portfolio[i].node_count; ii++) {
// Filter data between startDate and endDate
const startDate = new Date(portfolio.portfolio[i].nodes[ii].online_since);
const endDate = new Date();
const dataset = coin_data_24h.dataset;
let result = dataset.filter(item => new Date(item.timestamp) >= startDate && new Date(item.timestamp) <= endDate)
// Create array and fill it with 0
const array_with_zeros = Array.from(Array(3), () => 0)
// Return 3 results only
const array_with_data = result.slice(0, 3);
// How many results are in there
const length_array_with_data = array_with_data.length;
const start_index = 3 - length_array_with_data;
for (let i = 0; i < length_array_with_data; i++) {
array_with_zeros[start_index + i] = array_with_data[i].usd_price;
}
time_array.push(array_with_zeros);
} // for end
console.log(time_array);
}) // db end
} // for end
console.log(time_array);
}); // db end
}); // Mongo end
当我console.log(时间数组)在第一个循环之外时,我得到一个空数组
请告诉我为什么?我在循环之外定义了time_数组,所以它应该可以工作。非常感谢你
[ [ 5.619693750948361, 12.291785200236262, 57.45995830212961 ],
[ 19.577872231080086, 36.00637519615492, 24.425419908972522 ],
[ 19.577872231080086, 36.00637519615492, 24.425419908972522 ] ]
[ [ 5.619693750948361, 12.291785200236262, 57.45995830212961 ],
[ 19.577872231080086, 36.00637519615492, 24.425419908972522 ],
[ 19.577872231080086, 36.00637519615492, 24.425419908972522 ],
[ 0.7144408839408483, 2.256984583694044, 0.2710203249491058 ] ]