Как определить метод в JavaScript на Array.prototype и Object.prototype, чтобы он не появлялся в цикле for

Я хочу определить вспомогательные методы для Array.prototype и Object.prototype. Мой текущий план - сделать что-то вроде:

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

Так что я могу сделать это:

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

Это работает нормально, но если я зациклюсь на массиве вfor in В цикле методы отображаются в виде значений:

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

Это испортит всех, кто полагается наfor in просто показать значения (особенно на объектах). Более поздние версии javascript имеют функции .map и .filter, встроенные в массивы, но те нене показывать наfor in петли. Как я могу создать больше методов, как тот, который выигралне показывать вfor in цикл?

Ответы на вопрос(3)

Ваш ответ на вопрос