使用 Deno Collections 处理用户数据
演示如何使用 Deno 的 @std/collections 库来处理用户数据。此示例使用 pick、omit 和 partition 来操作数据结构。
import { omit, partition, pick } from "jsr:@std/collections";
使用 id、name、role、age 和 country 字段定义 User 类型
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