CyrefJS
CCyrefJS
EN
بازگشت به مستندات
آبجکت/از نسخه 1.38.0

mapKeys

یک شیء جدید ایجاد می‌کند که کلیدهای آن با استفاده از iteratee تغییر کرده‌اند و مقادیر اصلی حفظ می‌شوند.

mapKeys(object, iteratee):Record<K, T[keyof T]>

نحوه عملکرد

برای هر ویژگی مستقیم، قابل‌شمارش و دارای کلید رشته‌ای، iteratee مقدار، کلید و شیء اصلی را دریافت می‌کند. مقدار برگشتی به کلید جدید تبدیل می‌شود و مقدار اصلی حفظ می‌شود.

آرگومان‌های iteratee

iteratee سه آرگومان دریافت می‌کند: مقدار فعلی، کلید فعلی و شیء اصلی.

کلیدهای تکراری

اگر چند ویژگی یک کلید جدید یکسان تولید کنند، مقدار ویژگی بعدی مقدار قبلی را overwrite می‌کند.

ویژگی‌های پردازش‌شده

این implementation از Object.keys استفاده می‌کند، بنابراین ویژگی‌های inherited، غیرقابل‌شمارش و ویژگی‌های دارای کلید Symbol از شیء اصلی نادیده گرفته می‌شوند.

پارامترها

objectTالزامی

شیئی که کلیدهای آن باید تغییر داده شوند.

iteratee(value: T[keyof T], key: keyof T, object: T) => Kالزامی

تابعی که مقدار فعلی، کلید و شیء اصلی را دریافت کرده و کلید جدید را برمی‌گرداند.

مقدار بازگشتی

Record<K, T[keyof T]>

یک شیء جدید که مقادیر اصلی را تحت کلیدهای برگشتی توسط iteratee قرار می‌دهد.

مثال‌ها

01

استفاده پایه

TypeScript
const users = {
  alice: 25,
  bob: 30,
};

mapKeys(users, (value, key) => key.toUpperCase());
// {
//   ALICE: 25,
//   BOB: 30,
// }
02

ساخت کلید از مقدار

TypeScript
const users = {
  alice: 25,
  bob: 30,
};

mapKeys(users, (value) => `age-${value}`);
// {
//   "age-25": 25,
//   "age-30": 30,
// }
03

استفاده از کلید و مقدار

TypeScript
const users = {
  alice: 25,
  bob: 30,
};

mapKeys(users, (value, key) => `${key}-${value}`);
// {
//   "alice-25": 25,
//   "bob-30": 30,
// }
04

استفاده از شیء اصلی

TypeScript
const data = {
  first: 10,
  second: 20,
};

mapKeys(data, (value, key, object) => {
  return key === "first"
    ? "primary"
    : String(value + object.first);
});
// {
//   primary: 10,
//   "30": 20,
// }
05

کلیدهای عددی

TypeScript
const data = {
  first: "A",
  second: "B",
};

mapKeys(data, (value, key) => key === "first" ? 1 : 2);
// {
//   "1": "A",
//   "2": "B",
// }
06

کلیدهای Symbol

TypeScript
const first = Symbol("first");
const second = Symbol("second");

const data = {
  first: "A",
  second: "B",
};

mapKeys(data, (value, key) => {
  return key === "first" ? first : second;
});

// The resulting object uses the returned symbols as keys.
07

کلیدهای جدید تکراری

TypeScript
const data = {
  first: 10,
  second: 20,
};

mapKeys(data, () => "value");
// {
//   value: 20,
// }
08

شیء خالی

TypeScript
mapKeys({}, () => "key");
// {}
09

شیء اصلی تغییر نمی‌کند

TypeScript
const data = {
  first: 10,
  second: 20,
};

const result = mapKeys(data, (value, key) => key.toUpperCase());

console.log(data);
// {
//   first: 10,
//   second: 20,
// }
ساخته شده با@cyref/js·مستندات رسمی