为了账号安全,请及时绑定邮箱和手机立即绑定

推送数组并循环直到数组长度达到 3

推送数组并循环直到数组长度达到 3

暮色呼如 2023-05-11 16:38:40
我试图将数组推入一个值,直到它达到 3 的长度。我还想为循环添加延迟。修复代码的任何建议。如果满足条件,则中断并转到下一个功能。我非常感激!let array = [];let eachEverySeconds = 1;//function fetchCoinPrice(params) { //BinanceUS Fee: 0.00075 or 0.075%function Firstloop() {  for (x = 0; x < 4; x++) {    setTimeout(function() {      function fetchCoinPrice() {        binance.prices(function(error, ticker) {          //array.push(ticker.BNBBTC);              //while(array.length<3){          //if (array.length<4){          array.push(ticker.BNBBTC);          console.log("1", array);          //}else {}//if (array.length === 3) { break; }          // array.shift();        });      }    }, 1000)  }}// setInterval(Firstloop, eachEverySeconds * 1000);Firstloop()
查看完整描述

2 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

您需要将间隔保存到一个变量中,然后您可以在该变量clearInterval()上使用。


这是您要完成的任务的模型。


var array = [];

var maxLength = 3;

var delay = 250; //I shortened your delay

var ticker = {}; //I'll use this to simulate your ticker object


var looper = setInterval(function() { 

      ticker.BNBBTC = Math.random(); //populating your ticker property w/random value


      if (array.length < maxLength) {

         array.push(ticker.BNBBTC);

      } else {

         console.log("Stopping the looper.");

         clearInterval(looper);

         console.log("Here are the contents of array");

         console.log(array);

      }

}, delay);


查看完整回答
反对 回复 2023-05-11
?
青春有我

TA贡献1784条经验 获得超8个赞

我不确定我是否理解你的目的,因为那里有很多注释代码,但如果你想运行一个函数三次并在一秒钟后以新价格再次运行它,或者......可能这段代码对你有帮助:


let array = [];

let eachEverySeconds = 1;


const loopArray = (array) => {

    setTimeout(async () => {

        if (array.length === 3) return;

        let price = Math.random() * 10;

        array.push(price);

        await loopArray(array);

    }, 1000 * eachEverySeconds);

    console.log(array);

};


loopArray(array);


查看完整回答
反对 回复 2023-05-11
  • 2 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信