2014-10-01 5 views
-1

У меня есть функция, где я получаю значение, и в соответствии с этим значением я делаю еще одну процедуру for внутри функции. Цикл for отличается, но процедура внутри одинакова. Я хочу вызвать функцию внутри for, которая впоследствии изменит локальную переменную в первой функции. Примером может быть:Изменение локальной переменной в функции внутри функции

// option = 1 to get first prime number from 1-100, 2 to get the last 

function GetPrimeNumber(option){ 
    var number; 

    if(option == 1){ 
    for(i=1; i < 101; i++){ 
     DetermineIfPrime(i); 
    }  
    } 
    else if (option == 2){ 
    for(i=100; i > 0; i--){ 
     DetermineIfPrime(i); 
    } 
    } 
} 

И после этого у меня есть функция, которая определяет, является ли число

function DetermineIfPrime(a){ 

//Procedure 

    if (a == prime){ 
    number = a; 
    break; 
    } 
} 

Есть ли способ вернуть такие ценности, как то, что было бы a к number или break к предыдущей функции ?

+2

* «Есть ли способ вернуть значения ...» * Да, да. –

+1

Да, есть способ вернуть значения из функций ... – Bergi

+1

Я рекомендую прочитать [** Руководство по JavaScript JavaScript для функций **] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Руководство/Функции). –

ответ

0

return из DetermineIfPrime и набора, возвращающего значение number как это:

function GetPrimeNumber(option){ 
    var number; 

    if (option == 1) { 
    for(i=1; i < 101; i++) { 
     number = DetermineIfPrime(i); 
    }  
    } else if (option == 2) { 
    for (i=100; i > 0; i--) { 
     number = DetermineIfPrime(i); 
    } 
    } 
} 

function DetermineIfPrime(a){ 

    //Procedure 

    if (a == prime){ 
    return a; 
    } 
} 
0

номер является локальным для вашей функции GetPrimeNumber, так что если вы хотите, чтобы функция DetermineIfPrime, чтобы иметь возможность «увидеть», что вам нужно определите его внутри GetPrimerNumber.

Это не путь, но вы должны вернуть значение из своей функции и присвоить это локальному var.

Смежные вопросы