كيفية إزالة خاصية من كائن JavaScript

هناك طرق مختلفة لإزالة خاصية من كائن JavaScript. اكتشف البدائل والحل المقترح

الطريقة الصحيحة لغويًا لإزالة خاصية من كائن هي استخدامdeleteكلمة رئيسية.

نظرا للكائن

const car = {
  color: 'blue',
  brand: 'Ford'
}

يمكنك حذف خاصية من هذا الكائن باستخدام

delete car.brand

Delete a property from an object in JavaScript

يعمل أيضًا على النحو التالي:

delete car['brand']
delete car.brand
delete newCar['brand']

تعيين خاصية إلى غير محدد

إذا كنت بحاجة إلى إجراء هذه العملية بطريقة محسّنة للغاية ، على سبيل المثال عندما تعمل على عدد كبير من الكائنات في حلقات ، فهناك خيار آخر وهو تعيين الخاصية علىundefined.

نظرا لطبيعته ، فإن أداءdeleteهوأبطأ كثيرًامن مجرد إعادة تعيين إلىundefined، أبطأ أكثر من 50 مرة.

ومع ذلك ، ضع في اعتبارك أنه لا يتم حذف الخاصية من الكائن. تم مسح قيمتها ، لكنها تظل موجودة إذا كررت الكائن:

Iterate over the object

استخدامdeleteلا يزال سريعًا جدًا ، يجب أن تنظر في هذا النوع من مشكلات الأداء فقط إذا كان لديك سبب وجيه جدًا للقيام بذلك ، وإلا فمن المفضل دائمًا أن يكون لديك دلالات ووظائف أكثر وضوحًا.

إزالة خاصية دون تغيير الكائن

إذا كانت قابلية التغيير مصدر قلق ، فيمكنك إنشاء كائن جديد تمامًا عن طريق نسخ جميع الخصائص من القديم ، باستثناء الكائن الذي تريد إزالته:

const car = {
  color: 'blue',
  brand: 'Ford'
}
const prop = 'color'

const newCar = Object.keys(car).reduce((object, key) => { if (key !== prop) { object[key] = car[key] } return object }, {})

(نرىObject.keys())

Create a new object without mutating the original


المزيد من دروس js: