Array
私はプロトタイプを拡張しました:
if(typeof Array.prototype.filter === 'undefined') Array.prototype.filter = function(fun /*, thisp*/){
var len = this.length;
if(typeof fun != "function") throw new TypeError();
var res = [], thisp = arguments[1];
for(var i=0;i<len;i++){
if(i in this){
var val = this[i]; // in case fun mutates this
if(fun.call(thisp, val, i, this)) res.push(val);
}
}
return res;
};
たとえば、私は配列を作成しました:
var A = [ 1, 2, 3, 4, 5 ];
次に、それに追加のプロパティを追加しました。これを使用します。
A.creator = 'Rustam';
A.created = new Date();
for-in
ループを使用し、ブラウザにのサポートが組み込まれていない場合Array.filter
は、を通過しA.filter
ます。
私はこのように知っています:
for(var p in A) {
if (!A.hasOwnProperty(p)) continue
console.log(p)
};
使用せずにA.filter
隠しておく方法はありますか?for-in
hasOwnProperty
答えるために更新します。ブラウザのサポート:
- IE9 +
- FF4 +
- クロム
- Opera 11.6+
- Safari 5+