跳到主要内容

使用 Deno Collections 处理用户数据

演示如何使用 Deno 的 @std/collections 库来处理用户数据。此示例使用 pick、omit 和 partition 来操作数据结构。

在 Github 上编辑
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