ECMAScript 5 มีfilter()
ต้นแบบสำหรับArray
ประเภท แต่ไม่ใช่Object
ประเภทหากฉันเข้าใจอย่างถูกต้อง
ฉันจะใช้filter()
สำหรับObject
ใน JavaScript?
สมมติว่าฉันมีวัตถุนี้:
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 ฉันได้รับข้อผิดพลาด JavaScript ใน FireBug
Object.prototype
: bugs.jquery.com/ticket/2721