mpang
mpang

Reputation: 311

how to check if a javascript object contains null value or it itself is null

Say I'm accessing a JavaScript Object called jso in Java and I'm using the following statement to test if it's null

if (jso == null)

However, this statement seems to return true when jso contains some null values, which is not what I want.

Is there any method that can distinguish between a null JavaScript Object and a JavaScript Object that contains some null values?

Thanks

Upvotes: 8

Views: 42636

Answers (4)

Abiola Aribisala
Abiola Aribisala

Reputation: 45

Here is a really wasy way to do it

if (Object.values(jso).includes(null)) {
    // condition
}
else{
    // condition
}

Upvotes: 2

Niloct
Niloct

Reputation: 9995

Try an extra =

if (jso === null)

Upvotes: 2

Kirk Woll
Kirk Woll

Reputation: 77536

To determine whether the target reference contains a member with a null value, you'll have to write your own function as none exist out of the box to do this for you. One simple approach would be:

function hasNull(target) {
    for (var member in target) {
        if (target[member] == null)
            return true;
    }
    return false;
}

Needless to say, this only goes one level deep, so if one of the members on target contains another object with a null value, this will still return false. As an exmaple of usage:

var o = { a: 'a', b: false, c: null };
document.write('Contains null: ' + hasNull(o));

Will print out:

Contains null: true

In contrast, the following will print out false:

var o = { a: 'a', b: false, c: {} };
document.write('Contains null: ' + hasNull(o));

Upvotes: 19

Samuel Liew
Samuel Liew

Reputation: 79022

This is just for your reference. Do not upvote.

var jso;
document.writeln(typeof(jso)); // 'undefined'
document.writeln(jso); // value of jso = 'undefined'

jso = null;
document.writeln(typeof(jso)); // null is an 'object'
document.writeln(jso); // value of jso = 'null'

document.writeln(jso == null); // true
document.writeln(jso === null); // true
document.writeln(jso == "null"); // false

http://jsfiddle.net/3JZfT/3/

Upvotes: 6

Related Questions