Como definir o método em javascript em Array.prototype e Object.prototype para que ele não apareça em loop

Eu quero definir métodos auxiliares no Array.prototype e Object.prototype. Meu plano atual é fazer algo como:

Array.prototype.find = function(testFun) {
   // code to find element in array
};

Então eu posso fazer isso:

var arr = [1, 2, 3];
var found = arr.find(function(el) { return el > 2; });

Ele funciona bem, mas se eu fizer um loop sobre o array em umfor in loop os métodos aparecem como valores:

for (var prop in arr) { console.log(prop); }
// prints out:
// 1
// 2
// 3
// find

Isso vai estragar todo mundo contando com ofor in para mostrar apenas valores (especialmente em objetos). As versões posteriores do javascript têm funções .map e .filter incorporadas em matrizes, mas elas não aparecemfor in rotações. Como posso criar mais métodos como aquele que não aparece em umfor in loop?

questionAnswers(3)

yourAnswerToTheQuestion