منو سایت

  • خانه
  • وبلاگ
  • 3 روش برای حذف یک ویژگی از یک شی جاوا اسکریپت

3 روش برای حذف یک ویژگی از یک شی جاوا اسکریپت

 تاریخ انتشار :
/
  وبلاگ
3 روش برای حذف یک ویژگی از یک شی جاوا اسکریپت

سه روش اساسی برای حذف خواص از اشیاء جاوا اسکریپت

ساده ترین راه برای حذف یک ویژگی از یک شی در جاوا اسکریپت استفاده از آن است delete اپراتور.

delete objectName.propertyName;

برای مثال، اگر یک شی به نام دارید person با ملک ageمی توانید حذف کنید age مثل این:

delete person.age;

پس از اجرای این کد، person شی دیگر وجود نخواهد داشت age ویژگی. توجه داشته باشید که این فقط ویژگی را از شی حذف می کند. بر اشیایی که به همان ویژگی اشاره می کنند تأثیر نمی گذارد.

همچنین می‌توانید از عملگر دسترسی در براکت‌های مربع برای حذف ویژگی یک شی استفاده کنید:

delete obj[prop];

این راهنما رایج‌ترین روش‌های حذف ویژگی‌ها از اشیاء را به شما نشان می‌دهد. اگر پاسخ بالا کافی است، از خواندن دست بردارید. اما برای بررسی جاوا اسکریپت و یادگیری روش ها و توابع مفید، به شما توصیه می کنم به خواندن پست ادامه دهید. در پایان این راهنما، نحوه جلوگیری از حذف اموال را یاد خواهید گرفت!

بیایید به آن بپریم!

1. عملگر حذف.

عملگر delete در جاوا اسکریپت ویژگی ها را حذف می کند

در جاوا اسکریپت، delete اپراتور یک ویژگی را از یک شی حذف می کند. به طور خاص، ویژگی و مقدار آن را حذف می کند و برمی گرداند true اگر ملک با موفقیت حذف شد.

مثلا:

// Define an object with some properties
var myObject = {
  property1: "Hello",
  property2: "World"
};

// Delete the property2 property from the object
delete myObject.property2;

// Print the object to see the result
console.log(myObject);

خروجی:

{ property1: 'Hello' }

اینجا delete اپراتور حذف می کند property2 از جانب myObject. بعد از delete عبارت تکمیل شد، شی دیگر وجود نخواهد داشت property2 دارایی و ارزش آن خواهد بود undefined.

توجه داشته باشید که راه دیگری برای حذف یک ویژگی با عملگر حذف استفاده از براکت مربع برای دسترسی به ویژگی است.

برای مثال مثال بالا را تکرار می کنیم اما استفاده کنید myObject['property2'] بجای myObject.property2.

var myObject = {
  property1: "Hello",
  property2: "World"
};

// Delete the property2 property from the object
delete myObject['property2'];

console.log(myObject);

2. اپراتور…

عملگر توزیع (...) ویژگی های شی جاوا اسکریپت را حذف می کند

یکی دیگر از اپراتورهای محبوب جاوا اسکریپت که ممکن است با آن آشنا باشید، عملگر spread یا عملگر سه نقطه نام دارد....).

به یک معنا، شما می توانید از این عملگر برای حذف یک ویژگی از یک شی استفاده کنید. در واقع، فقط یک شی جدید ایجاد می کند که خاصیتی را که شما “حذف کرده اید” را ندارد.

بنابراین برای حذف یک ویژگی از یک شی با استفاده از عملگر spread، یک شی جدید ایجاد کنید که شامل تمام خصوصیات شی اصلی به جز ویژگی مورد نظر برای حذف شود.

مثلاً حذف کنیم prop2 از یک شی با سه ویژگی:

const obj = {
  prop1: 'value1',
  prop2: 'value2',
  prop3: 'value3'
};

// Create a new object with all of the properties of `obj` except `prop2`
const newObj = { ...obj, prop2: undefined };

console.log(newObj); // Output: { prop1: 'value1', prop3: 'value3' }

در این کد:

  1. شما یک شی ایجاد می کنید obj که دارای سه خاصیت است: prop1، prop2و prop3.
  2. سپس یک شی جدید به نام ایجاد می کنید newObj که شامل تمام خواص از obj جز prop2.

مرحله نهایی با استفاده از نحو انتشار (...obj). هنگامی که به این روش استفاده می شود، به سادگی یک شی جدید را بازسازی می کند که شامل تمام ویژگی های اصلی است obj. سپس شما تنظیم کنید prop2 به undefined در شی جدید، که به طور موثر آن را از شی جدید ایجاد شده حذف می کند.

توجه داشته باشید که این روش فقط یک شی جدید با ویژگی های مورد نظر شما ایجاد می کند. شی اصلی را تغییر نمی دهد. برای حذف واقعی یک ویژگی از یک شی به طوری که شما شی اصلی را تغییر دهید، از استفاده کنید delete اپراتور:

const obj = {
  prop1: 'value1',
  prop2: 'value2',
  prop3: 'value3'
};

// Remove the `prop2` property from `obj`
delete obj.prop2;

console.log(obj); // Output: { prop1: 'value1', prop3: 'value3' }

3. متد Reflect.deleteProperty() .

متد Reflect.deleteProperty همچنین می تواند خواص را از اشیاء جاوا اسکریپت حذف کند

این Reflect شی در جاوا اسکریپت یک شی داخلی است که روش هایی را برای عملیات جاوا اسکریپت رهگیری شده ارائه می دهد. شبیه به Proxyاما به شما اجازه نمی دهد که رفتار سفارشی را برای عملیات فردی تعریف کنید.

برای حذف یک ویژگی از یک شی با استفاده از Reflect.deleteProperty() روش، می توانید از نحو زیر استفاده کنید:

Reflect.deleteProperty(object, propertyName);

اینجا، object شیئی است که می خواهید ویژگی را از آن حذف کنید، و propertyName رشته ای است که نام ویژگی مورد نظر را برای حذف مشخص می کند. این روش برمی گردد true اگر دارایی با موفقیت حذف شد، یا false اگر ویژگی را نتوان حذف کرد (به عنوان مثال، اگر نمی توان آن را پیکربندی کرد).

در اینجا مثالی از نحوه استفاده از این روش برای حذف یک ویژگی از یک شی آورده شده است:

// Define an object with a property that we want to delete
const obj = {
  name: "John Doe",
  age: 15
};

// Delete the "name" property from the object
const result = Reflect.deleteProperty(obj, "name");

// Print the result of the operation
console.log(result); // true
console.log(obj);    // { age: 15 }

در این مثال، Reflect.deleteProperty() روش حذف می شود name دارایی از obj اشیاء result متغیر تنظیم شده است true برای نشان دادن اینکه دارایی با موفقیت حذف شده است.

چگونه از حذف اموال جلوگیری کنیم؟

شاید برای شما مفید باشد که بدانید جاوا اسکریپت همچنین به شما امکان می دهد اشیاء خود را طوری پیکربندی کنید که نتوانید یک ویژگی خاص را حذف کنید.

برای این کار استفاده کنید Object.defineProperty() روشی که به شما اجازه می دهد تا ویژگی های یک شی را تعریف یا تغییر دهید. برای راه اندازی می توانید از این روش استفاده کنید configurable دارایی اموال به falseکه از حذف اموال جلوگیری می کند.

مثلاً پیشگیری کنیم name خاصیتی که نباید از شی زیر حذف شود:

let myObject = { name: 'John', age: 30 };

Object.defineProperty(myObject, 'name', { configurable: false });

delete myObject.name;

console.log(myObject); // Output: { name: 'John', age: 30 }

همانطور که می بینید، حذف ملک name دیگر امکان پذیر نیست این به دلیل محدودیتی است که ما روی شی قرار داده ایم.

انجام دادن name ویژگی را می توان دانلود کرد، فقط تنظیم کنید configurable بازگشت به true.

let myObject = { name: 'John', age: 30 };

Object.defineProperty(myObject, 'name', { configurable: true });

delete myObject.name;

console.log(myObject); // Output: { age: 30 }

با تشکر برای خواندن. کد نویسی مبارک!

همچنین بخوانید

عملگر توزیع (…) در جاوا اسکریپت