[英]How to assign a value to a variable after each interval?
我想運行一個重復 100 次的腳本。
每次重復都應該按順序進行
從數組或列表中獲取名稱並將它們傳遞給我的變量。 我怎樣才能做到這一點?
我創建了這個作為示例,並考慮如何在那里安裝 function。 我已經閱讀並嘗試了一些東西。 但不知何故我還沒有准備好
var TestNames = ["test1", "test2", "test3", "test4", "test5"] var n = TestNames[0] interval = setInterval(function() { var Username = n; console.log(Username); // here is some code }, 2000); setTimeout(function() { clearInterval(interval) }, 10000);
假設setTimeout
是根據名稱數量 (10000/2000) 計算的,您可以完全省略它。
const TestNames = ["test1", "test2", "test3", "test4", "test5"]; //REM: https://developer.mozilla.org/en-US/docs/Web/API/setInterval //REM: Passing a copy of TestNames to not alter the original const interval = setInterval(function(listOfNames){ if(listOfNames.length){ //REM: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift const Username = listOfNames.shift(); console.log('Current name:', Username); console.log(TestNames.length - listOfNames.length, ' names done.'); console.log(listOfNames.length % TestNames.length, ' names left.') } else{ //REM: Cancel the interval, if listOfNames has no more items clearInterval(interval); console.log('No names left.') } }, 2000, Array.from(TestNames));
從數組或列表中獲取名稱並將它們傳遞給我的變量。 我怎樣才能做到這一點?
這取決於您的要求。
TestNames
嗎? 在我的示例中,我將TestNames
的副本作為listOfNames
傳遞給間隔。 在每次迭代中,我使用shift
從listOfNames
中刪除第一個項目,它也返回刪除的項目並將其分配給Username
。 如果listOfNames
沒有更多項目,則清除間隔。
const TestNames = ["test1", "test2", "test3", "test4", "test5"] let index = 0 const interval = setInterval(function() { const Username = TestNames[index]; console.log(Username); index += 1 }, 2000); setTimeout(function() { clearInterval(interval) }, 10000);
如果你想為每次迭代寫一個用戶名,我建議這樣做。 還要注意 const 和 let 的使用
const testNames = ["test1", "test2", "test3", "test4", "test5"]; // JS arrays starts at 0 const numberOfNames = testNames.length; let counter = 0; let interval = setInterval(function() { if (counter >= numberOfNames) return; // don't continue let Username = testNames[counter]; console.log(counter,Username); counter++; // point at the next or perhaps beyond - shorthand for counter = counter + 1 or counter += 1. ++ increments // here is some code }, 2000); let tId = setTimeout(function() { clearInterval(interval) }, 10000);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.