XRipperxMetalX
XRipperxMetalX

Reputation: 135

How to change a variable to something if it's undefined?

I don't have my script completed yet or anything so I can't post the code. Basically I need a variable to change and keep going through a function increasing by one until it reaches its destination. Something like:

function one(a) {
    var x = a;
    var max = 3;
    if (a < 3) {
        // some code
        two(x);
    } else {
      // function will end here quitting the whole thing and possibly other code
    }
}
function two(x) {
    var change = x+1;
    one(change);

}

It all works how I need it but when I first enter function one how would I make it so when x = a doesn't have a value that it will by default be 0?

something like...

function one(a) {
    var x = a;
    var max = 3;
    if (x = undefined) {
      x = 0;
    } else {
        if (x < 3) {
            // some code
            two(x);
        } else {
          // function will end here quitting the whole thing and possibly other code
        }
    }
}
function two(x) {
    var change = x+1;
    one(change);

}

Any ideas?

Upvotes: 0

Views: 258

Answers (3)

Santiago Ramirez
Santiago Ramirez

Reputation: 51

var x = (typeof a === 'undefined') ? 0 : a;

If a is undefined, use 0. Otherwise use a as the value of x.

Upvotes: 0

Jonathan
Jonathan

Reputation: 9151

You could do this:

function one(a) {
    var x = a || 0;
    if (x < 3) {
        //debugger;
        two(x);
    } else {
        // function will end here quitting the whole thing and possibly other code
        alert('Done');
    }
}

function two(x) {
    x++;
    one(x);
}

one();

FIDDLE

var x = a || 0 means x is a if a can be asserted as true or 0.
x++ means x = x + 1

Upvotes: 1

ryandawkins
ryandawkins

Reputation: 1545

You can check to see if the variable is defined and send it in the functions argument by using the short hand conditional.

typeof(a)=="undefined" ? 0 : a;

You can change your code to:

function one(a) {
    var x = (typeof(a)=="undefined" ? 0 : a);
    var max = 3;
    if (x < 3) {
        // some code
        two(x);
    } else {
        // function will end here quitting the whole thing and possibly other code
        return;
    }
}

Fiddle: http://jsfiddle.net/gBBL2/

Upvotes: 0

Related Questions