Как определить метод в 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
цикл?