user4965201
user4965201

Reputation: 973

Getting TypeError when iterating over an object

I am using Rails, and I am getting an error in my jQuery code:

Uncaught TypeError: Cannot read property 'length' of undefined

The actual code where I am getting the error:

// args is for internal usage only
    each: function( obj, callback, args ) {
        var value,
            i = 0,
            length = obj.length,
            isArray = isArraylike( obj );

        if ( args ) {
            if ( isArray ) {
                for ( ; i < length; i++ ) {
                    value = callback.apply( obj[ i ], args );

                    if ( value === false ) {
                        break;
                    }
                }
            } else {
                for ( i in obj ) {
                    value = callback.apply( obj[ i ], args );

                    if ( value === false ) {
                        break;
                    }
                }
            }

Upvotes: 4

Views: 69

Answers (1)

moon jeongtaek
moon jeongtaek

Reputation: 56

how about try this?

var length = Object.keys(obj).length

or

var length = 0;
for (var o in obj) {
    length++;
}

Upvotes: 3

Related Questions