I have this extension to the Array object:
Array.prototype.contains = function(value) {
	for (var i = 0, ii = this.length; i < ii; i++)
		if (this[i] === value) return true;
	return false;
When I want to loop through an Array with a for..in construct, I will encounter the "contains" method, as it is a property of every Array.

To remedy this unwanted phenomena, I need to check if the current Array value is a function, and if it is, I have to skip to the next value. But what if I have some functions in the Array which I want to deal with in the loop?

Is there an easy and elegant way for omitting prototyped user methods from for..in loops?