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

filterObject

یک شیء جدید شامل ویژگی‌هایی ایجاد می‌کند که شرط predicate را برآورده می‌کنند.

filterObject(object, predicate):Partial<T>

پارامترها

objectTالزامی

شیئی که ویژگی‌های آن باید فیلتر شوند.

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

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

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

Partial<T>

یک شیء جدید شامل فقط ویژگی‌هایی که predicate برای آن‌ها true برگردانده است.

مثال‌ها

01

استفاده پایه

فقط ویژگی‌هایی را نگه می‌دارد که مقدارشان number است.

TypeScript
const result = filterObject(
  {
    name: "Alice",
    age: 25,
    score: 90,
  },
  (value) => typeof value === "number",
);

console.log(result);
// {
//   age: 25,
//   score: 90
// }
02

فیلتر بر اساس کلید

predicate می‌تواند کلید ویژگی را بررسی کند.

TypeScript
const result = filterObject(
  {
    name: "Alice",
    age: 25,
    active: true,
  },
  (_value, key) => key !== "active",
);

console.log(result);
// {
//   name: "Alice",
//   age: 25
// }
03

فیلتر بر اساس مقدار

predicate مقدار هر ویژگی را دریافت می‌کند.

TypeScript
const result = filterObject(
  {
    a: 5,
    b: 12,
    c: 20,
  },
  (value) => typeof value === "number" && value > 10,
);

console.log(result);
// {
//   b: 12,
//   c: 20
// }
04

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

سومین آرگومان predicate همان شیء اصلی است.

TypeScript
const result = filterObject(
  {
    min: 10,
    max: 20,
    value: 15,
  },
  (value, key, object) => {
    if (key === "value") {
      return (
        typeof value === "number" &&
        value >= object.min &&
        value <= object.max
      );
    }

    return false;
  },
);

console.log(result);
// {
//   value: 15
// }
05

بدون نتیجه

اگر predicate برای تمام ویژگی‌ها false برگرداند، یک شیء خالی برگردانده می‌شود.

TypeScript
const result = filterObject(
  {
    a: 1,
    b: 2,
  },
  () => false,
);

console.log(result);
// {}
06

همه ویژگی‌ها

اگر برای تمام ویژگی‌ها true برگردانده شود، تمام ویژگی‌های own و enumerable با کلید string کپی می‌شوند.

TypeScript
const result = filterObject(
  {
    name: "Alice",
    age: 25,
  },
  () => true,
);

console.log(result);
// {
//   name: "Alice",
//   age: 25
// }
07

شیء اصلی بدون تغییر

تابع یک شیء نتیجه جداگانه ایجاد می‌کند و شیء ورودی را تغییر نمی‌دهد.

TypeScript
const original = {
  name: "Alice",
  age: 25,
};

const result = filterObject(
  original,
  (value) => typeof value === "string",
);

console.log(original);
// {
//   name: "Alice",
//   age: 25
// }

console.log(result);
// {
//   name: "Alice"
// }

console.log(result === original);
// false
08

ویژگی‌های inherited

ویژگی‌های inherited پردازش نمی‌شوند، چون implementation از Object.keys استفاده می‌کند.

TypeScript
const parent = {
  inherited: true,
};

const object = Object.create(parent);

object.own = true;

const result = filterObject(
  object,
  () => true,
);

console.log(result);
// {
//   own: true
// }
ساخته شده با@cyref/js·مستندات رسمی