所以我只是想知道爲什麼下面的代碼不起作用。我正在尋找一種將for循環放入變量的類似策略。爲什麼我不能將循環分配給變量?
var whatever = for (i=1;i<6;i++) {
console.log(i)
};
謝謝!
所以我只是想知道爲什麼下面的代碼不起作用。我正在尋找一種將for循環放入變量的類似策略。爲什麼我不能將循環分配給變量?
var whatever = for (i=1;i<6;i++) {
console.log(i)
};
謝謝!
因爲for
循環是語句並且在JavaScript語句中沒有值。這根本不是該語言的語法和語義所提供的。
在某些語言中,每個語句都被視爲一個表達式(例如Erlang)。在其他情況下,情況並非如此。 JavaScript屬於後一類。
這有點像是問爲什麼馬有長長的絲尾和沒有翅膀。
編輯 —看到的東西,如下劃線庫或「現代」附加到Array原型的「地圖」和「減少」和「的forEach」功能。這些允許在表達式評估上下文中進行迭代操作(當然,費用昂貴)。
你可以把你的循環放入一個函數,但是,這可能是你想要的。 – Ben
@點,沒有翅膀?我不知道你一直在看什麼樣的馬。 :) –
你的問題是for循環不返回值。您可以構建具有足夠元素的數組來保存你的循環的所有迭代,然後分配給它的循環中:
arry[j++] = i;
我想你尋找什麼是功能:
var whatever = function(min, max) {
for (var i = min; i < max; ++i) {
console.log(i);
}
}
......後來......
whatever(1, 6);
這種方法可以讓你封裝循環(或任何其他C頌,甚至聲明另一個函數)。
你可以這樣做,但似乎你可能想檢查匿名函數。隨着一個匿名函數,你可以這樣做:
var whatever = function(){
for (var i=1;i<6;i++) {
console.log(i);
}
};
然後
whatever(); //runs console.log(i) i times.
'whatever();'和'var i' – scriptin
你期望'whatever' for循環完成時包含哪些內容? –
你如何期待這個工作?在那之後你想用你的一個變量來做什麼? – lanzz
您可以將一個函數賦值給一個變量。因此,將循環包含在函數中:var test = function(){for(var i = 1; i <6; i ++){console.log(i);}};測試(); –