2013-10-27 63 views
1

我試圖獲取一個while循環的產品出來我的變量:如何返回while循環的產物,是一個變量

var firstOne = 1; 
var timesBy = 0; 
var result1 = function() 
{ 
    while (timesBy < 10) { 
firstOne * timesBy; 
timesBy = timesBy +1; 
} 
    }; 
console.log(result1); 

我的控制檯只是記錄[功能]這是有道理的,因爲我已經要求它給我result1,但當然我想要的是在那裏的函數內部的while循環的產物。我知道這很簡單,但我剛剛開始。 感謝

+3

你想_call_功能。 – SLaks

+1

該函數還應該_return_一個值。另外,我想你想設置一個變量爲'firstOne * timesB'的值。否則,它在功能中沒有任何作用。 – 2013-10-27 23:33:40

+0

你想用'firstOne * timesBy;'做什麼? – 2013-10-27 23:35:57

回答

1

你接近:

var firstOne = 1; 
var timesBy = 0; 
var result1 = function() { 
    while (timesBy < 10) { 
     timesBy++; 
     firstOne = firstOne * timesBy; 
    } 
    return firstOne; 
}; 
alert(result1()); 

FIDDLE

+0

我已經標記了這一個作爲答案,沒有冒犯大衛,這純粹是這是我理解的唯一一個:)謝謝一切爲了你的幫助。 – Salieri

+2

只需要注意:像這樣更新全局變量('firstOne')被認爲是不好的做法。將firstOne的聲明移到result1函數中更好。 – slebetman

+0

@Salieri:沒有冒犯,我很高興你找到了一個你明白哪個適合你的答案。 :) –

3

你需要從函數返回一個值,並調用函數本身:

var firstOne = 1; 
var timesBy = 0; 
var result1 = function() { 
    while (timesBy < 10) { 
     firstOne * timesBy; // does nothing, but I left it regardless. 
     timesBy = timesBy + 1; 
    } 
    return timesBy; // returns the variable back to the calling-context 
}; 
console.log(result1, result1()); 
//     ^-- calls the function 

JS Fiddle demo

有了更新,在評論,作爲這個功能的預期結果:

var firstOne = 1; 
var result1 = function() { 
    for (var i = 1; i < 11; i++){ 
     firstOne = firstOne * i; 
    } 
    return firstOne; 
}; 
console.log(result1()); 

JS Fiddle demo

+1

不過:什麼是'firstOne * timesBy;'在做什麼? – 2013-10-27 23:35:04

+0

@Jeff:我不知道,但我認爲發佈的代碼是從一個更大的練習中剔除的(並且那個特定的行是一個殘餘的殘餘)。 –

+0

如果這只是真的,掛起我會寫出來 – Salieri