function nonIndexKeys( obj ) {
	var keys;
	var len;
	var N;
	var i;
	var j;

	keys = objectKeys( obj );
	len = keys.length;
	N = len;
	j = 0;

	// Compress the list of keys by using a lagging index and moving non-integer indices to earlier positions in the array...
	for ( i = 0; i < len; i++ ) {
		if ( RE_INTEGER_INDEX.test( keys[ i ] ) ) {
			N -= 1;
		} else {
			keys[ j ] = keys[ i ];
			j += 1;
		}
	}
	keys.length = N;
	return keys;
}
Returns an array of an object's own enumerable property names which are not integer indices.

@param {ObjectLike} obj - input object
@returns {Array} key array

@example
function Foo() {
    this[ 0 ] = 3.14;
    this.beep = 'boop';
    return this;
}

Foo.prototype.foo = 'bar';

var obj = new Foo();

var keys = nonIndexKeys( obj );
// e.g., returns [ 'beep' ]