ujc
10/30/2014 - 9:47 PM

Add array-like accessors to any object

Add array-like accessors to any object

// Adds array-like accessors to 'obj'
function arrayify(obj){
	
	// Init
	var newObj = {},
		idx	= 0;
	
	// Add array-like keys to all self-properties
	for (var key in obj){ if (obj.hasOwnProperty(key)){
		
		newObj[idx++] = obj[key];
	}}
	
	// Add a length property (WARNING: MAKE SURE YOUR OBJECT DOES NOT USE A KEY NAMED 'length')
	newObj.length = idx;
	
	// Return the new array-like object (NOTE: The original object will not be changed)
	return newObj;
}