ECMAScript 5 มีfilter()ต้นแบบสำหรับArrayประเภท แต่ไม่ใช่Objectประเภทหากฉันเข้าใจอย่างถูกต้อง
ฉันจะใช้filter()สำหรับObjectใน JavaScript?
สมมติว่าฉันมีวัตถุนี้:
var foo = {
bar: "Yes"
};
และฉันต้องการที่จะเขียนสิ่งfilter()ที่ได้ผลกับObjects:
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