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
ループに表示されないようなメソッドをさらに作成するにはどうすればよいですか?