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?