Javascript 如何将阵列数据推高一个范围

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';

我需要第一个循环外部的时间数组的数据。当我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';
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 ] ]