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

mapValues

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

mapValues(object, iteratee):{ [K in keyof T]: R }

نحوه عملکرد

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

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

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

نوع خروجی

جنریک R نوع مقداری را که iteratee برمی‌گرداند مشخص می‌کند. بنابراین تمام ویژگی‌های شیء خروجی دارای همان نوع R هستند.

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

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

پارامترها

objectTالزامی

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

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

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

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

{ [K in keyof T]: R }

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

مثال‌ها

01

استفاده پایه

TypeScript
const prices = {
  apple: 10,
  banana: 20,
};

mapValues(prices, (value) => value * 2);
// {
//   apple: 20,
//   banana: 40,
// }
02

تبدیل مقادیر به رشته

TypeScript
const scores = {
  math: 18,
  physics: 20,
};

mapValues(scores, (value) => `Score: ${value}`);
// {
//   math: "Score: 18",
//   physics: "Score: 20",
// }
03

استفاده از کلید

TypeScript
const prices = {
  apple: 10,
  banana: 20,
};

mapValues(prices, (value, key) => `${key}: ${value}`);
// {
//   apple: "apple: 10",
//   banana: "banana: 20",
// }
04

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

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

mapValues(data, (value, key, object) => {
  return value + object.first;
});
// {
//   first: 20,
//   second: 30,
// }
05

تغییر نوع مقدار خروجی

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

mapValues(users, (value) => value >= 30);
// {
//   alice: false,
//   bob: true,
// }
06

شیء خالی

TypeScript
mapValues({}, () => "value");
// {}
07

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

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

const result = mapValues(data, (value) => value * 2);

console.log(data);
// {
//   first: 10,
//   second: 20,
// }
08

ویژگی‌های inherited

TypeScript
const parent = {
  inherited: 10,
};

const data = Object.create(parent);
data.own = 20;

mapValues(data, (value) => value * 2);
// {
//   own: 40,
// }
ساخته شده با@cyref/js·مستندات رسمی