如果我理解正确的话,ECMAScript 5 有类型的filter()
原型Array
,但没有Object
类型。
我将如何在 JavaScript 中实现filter()
for Object
s?
假设我有这个对象:
var foo = {
bar: "Yes"
};
我想写一个filter()
适用于Object
s 的:
Object.prototype.filter = function(predicate) {
var result = {};
for (key in this) {
if (this.hasOwnProperty(key) && !predicate(this[key])) {
result[key] = this[key];
}
}
return result;
};
当我在下面的演示中使用它时,这会起作用,但是当我将它添加到我使用 jQuery 1.5 和 jQuery UI 1.8.9 的站点时,我在 FireBug 中收到 JavaScript 错误。