الگوهای Object.keys

الگوهای Object.keys در جاوااسکریپت

در جاوااسکریپت، Object.keys() یکی از متدهای پرکاربرد برای کار با اشیا است. این متد یک آرایه از کلیدهای قابل شمارش (enumerable) یک شیء را برمی‌گرداند. در این مقاله به بررسی الگوهای کاربردی و نکات مهم در استفاده از این متد می‌پردازیم.

سینتکس پایه Object.keys

سینتکس اصلی این متد بسیار ساده است:

Object.keys(obj)

که در آن obj شیء مورد نظر شماست. خروجی این تابع یک آرایه از رشته‌ها است که نام ویژگی‌های قابل شمارش شیء را نشان می‌دهد.

مثال‌های کاربردی

بیایید با چند مثال ساده شروع کنیم:

مثال خروجی
Object.keys({a: 1, b: 2}) ['a', 'b']
Object.keys(['x', 'y']) ['0', '1']

الگوهای پیشرفته

در ادامه برخی الگوهای پیشرفته‌تر را بررسی می‌کنیم:

  1. تعداد ویژگی‌های یک شیء: با ترکیب length می‌توانید تعداد ویژگی‌های یک شیء را بدست آورید:
    const count = Object.keys(obj).length;
  2. بررسی خالی بودن شیء:
    function isEmpty(obj) {
      return Object.keys(obj).length === 0;
    }
  3. پیمایش ویژگی‌های شیء: می‌توانید با حلقه for...of روی کلیدها پیمایش کنید:
    for (const key of Object.keys(obj)) {
      console.log(key, obj[key]);
    }

تفاوت با سایر متدهای شیء

Object.keys با سایر متدهای مشابه تفاوت‌هایی دارد:

  • Object.getOwnPropertyNames: شامل کلیدهای غیرقابل شمارش هم می‌شود
  • Reflect.ownKeys: شامل کلیدهای Symbol هم می‌شود
  • for...in: شامل ویژگی‌های ارث‌بری شده از پروتوتایپ هم می‌شود

برای یادگیری بیشتر درباره حلقه‌ها در جاوااسکریپت می‌توانید اینجا را دنبال کنید.

نکات مهم

در استفاده از Object.keys به این نکات توجه کنید:

نکته توضیح
ترتیب کلیدها در ES6 ترتیب کلیدها برای اعداد به صورت صعودی و برای سایر موارد به ترتیب اضافه شدن است
ویژگی‌های غیرقابل شمارش این متد فقط ویژگی‌های قابل شمارش را برمی‌گرداند
ورودی غیر شیء در صورت ورودی غیر شیء، آن را به شیء تبدیل می‌کند (مثلا رشته به شیء رشته)

در نهایت، Object.keys ابزاری قدرتمند برای کار با اشیا در جاوااسکریپت است که در بسیاری از سناریوهای عملی مانند بررسی ساختار داده‌ها، پیمایش اشیا و تبدیل اشیا به آرایه کاربرد دارد.