使用 Deno Collections 處理使用者資料
在 Github 上編輯
示範如何使用 Deno 的 @std/collections 函式庫來處理使用者資料。此範例使用 pick、omit 和 partition 來操作資料結構。
import { omit, partition, pick } from "jsr:@std/collections";
定義 User 型別,包含 id、name、role、age 和 country 欄位
type User = {
id: number;
name: string;
role: string;
age: number;
country: string;
};
用於示範目的的使用者資料範例陣列
const users: User[] = [
{ id: 1, name: "Alice", role: "admin", age: 30, country: "USA" },
{ id: 2, name: "Bob", role: "user", age: 25, country: "Canada" },
{ id: 3, name: "Charlie", role: "user", age: 28, country: "USA" },
{ id: 4, name: "Dave", role: "admin", age: 35, country: "Canada" },
{ id: 5, name: "Eve", role: "user", age: 22, country: "UK" },
];
1. 從每個使用者中挑選特定欄位以進行選擇性資料擷取 使用 pick 在新陣列中僅包含每個使用者的 id、name 和 country
const pickedUsers = users.map((user) => pick(user, ["id", "name", "country"]));
console.log("Picked user data:", pickedUsers);
2. 從每個使用者中省略特定欄位以移除敏感資料 使用 omit 在新陣列中排除每個使用者物件的 "id" 欄位
const omitUsers = users.map((user) => omit(user, ["id"]));
console.log("Omitted user data:", omitUsers);
3. 根據角色劃分使用者,將其分類為管理員和一般使用者 使用 partition 將使用者陣列分割成兩組:管理員和一般使用者
const [admins, regularUsers] = partition(
users,
(user) => user.role === "admin", // Condition to check if user role is admin
);
console.log("Admins:", admins);
console.log("Regular Users:", regularUsers);
使用 Deno CLI 在本地執行此範例
deno run --allow-read data-processing.ts