Style nit: it's a bit easier to read to lower the amount of nesting if you remove the else block and just do:

    if (node) return true;
    Array properties ...