آرایه/از نسخه
1.38.0groupBy
عناصر یک آرایه را با استفاده از مقدار یک property مشخص از هر آبجکت، در گروههای مختلف دستهبندی میکند.
groupBy(array, key):Record<string, T[]>پارامترها
arrayT[]الزامیآرایهای از آبجکتها که عناصر آن باید گروهبندی شوند.
keyKالزامیکلید property که مقدار آن برای تعیین گروه هر عنصر استفاده میشود.
مقدار بازگشتی
Record<string, T[]>یک آبجکت که هر property آن نمایانگر یک گروه است و عناصر متعلق به آن گروه را در قالب یک آرایه نگه میدارد.
مثالها
01
استفاده پایه
آبجکتها را بر اساس مقدار property مشخصشده گروهبندی میکند.
TypeScript
import { groupBy } from "@cyref/js";
const users = [
{ name: "Amir", role: "developer" },
{ name: "Sara", role: "designer" },
{ name: "Reza", role: "developer" },
];
const result = groupBy(users, "role");
console.log(result);
// {
// developer: [
// { name: "Amir", role: "developer" },
// { name: "Reza", role: "developer" },
// ],
// designer: [
// { name: "Sara", role: "designer" },
// ],
// }02
گروهبندی بر اساس دستهبندی
کلید میتواند هر property موجود در نوع آبجکت باشد.
TypeScript
import { groupBy } from "@cyref/js";
const products = [
{ name: "Laptop", category: "electronics" },
{ name: "Phone", category: "electronics" },
{ name: "T-Shirt", category: "clothing" },
];
const result = groupBy(products, "category");
console.log(result);
// {
// electronics: [
// { name: "Laptop", category: "electronics" },
// { name: "Phone", category: "electronics" },
// ],
// clothing: [
// { name: "T-Shirt", category: "clothing" },
// ],
// }03
گروههای تکعضوی
مقادیر که فقط یکبار تکرار شدهاند، گروههایی شامل یک عنصر ایجاد میکنند.
TypeScript
import { groupBy } from "@cyref/js";
const items = [
{ id: 1, type: "a" },
{ id: 2, type: "b" },
{ id: 3, type: "a" },
];
const result = groupBy(items, "type");
console.log(result);
// {
// a: [
// { id: 1, type: "a" },
// { id: 3, type: "a" },
// ],
// b: [
// { id: 2, type: "b" },
// ],
// }04
آرایه خالی
یک آرایه ورودی خالی، یک آبجکت خالی برمیگرداند.
TypeScript
import { groupBy } from "@cyref/js";
const result = groupBy([], "type");
console.log(result);
// {}ساخته شده با@cyref/js·مستندات رسمی