当前位置: 首页 > article >正文

Js中的pick函数

pick 函数用于从对象中提取特定属性,并返回一个新对象。它在处理大型对象时非常有用,能够帮助提取所需的数据。以下是 pick 函数的详细使用说明和示例。

1. 自定义 pick 函数

首先,您可以自己实现一个 pick 函数:

function pick(obj, keys) {
  // 使用 reduce 方法遍历 keys 数组
  return keys.reduce((result, key) => {
    // 检查当前属性名 key 是否存在于对象 obj 中
    if (key in obj) {
      // 如果存在,将该属性及其值添加到 result 对象中
      result[key] = obj[key];
    } // 返回当前的 result 对象,以便下一次迭代使用
    return result; // 初始化累加器 result 为一个空对象
  }, {});
}

2. 使用示例

假设您有一个包含多个属性的对象:

const user = {
  id: 1, username: 'john_doe',
  password: 'secret', email: 'john@example.com',
  age: 30,
};

提取特定属性

您可以使用 pick 函数提取 username 和 email 属性:

const userInfo = pick(user, ['username', 'email']); 
console.log(userInfo); // 输出: { username: 'john_doe', email: 'john@example.com' }

3. 使用第三方库

如果您不想自己实现 pick 函数,可以使用 Lodash 或 Underscore.js 这样的库,它们提供了现成的 pick 方法。

使用 Lodash

首先,安装 Lodash:

npm install lodash

使用:

import { pick } from 'lodash'; 
const userInfo = pick(user, ['username', 'email']); 
console.log(userInfo); // 输出: { username: 'john_doe', email: 'john@example.com' }

 处理不存在的属性

如果您尝试提取一个对象中不存在的属性,pick 函数不会抛出错误,它只会忽略这些属性:

const userInfo = pick(user, ['username', 'nonexistentProperty']); 
console.log(userInfo); // 输出: { username: 'john_doe' }


http://www.kler.cn/news/307199.html

相关文章:

  • 【Python基础】Python 装饰器(优雅的代码增强工具)
  • 如何通过Chrome浏览器轻松获取视频网站的TS文件
  • 什么是交换机级联?
  • 使用Python生成多种不同类型的Excel图表
  • HTML5元素定位
  • 小米,B站网络安全岗位笔试题目+答案
  • 借老系统重构我准备写个OpenAPI3.1版的API管理工具(附录屏演示)
  • 快手自研Spark向量化引擎正式发布,性能提升200%
  • MySQL基础(11)- 创建管理表
  • bug 记录 - animation 在 IOS机型掉帧情况
  • Web安全之HTTPS调用详解和证书说明案例示范
  • Ubuntu 安装包下载(以20版本 阿里镜像站为例子)
  • 非凸科技钻石赞助第四届Rust China Conf 2024
  • (南京观海微电子)——GH7006+Boe_6.8_AV068WVU-N10原理介绍
  • 数据清洗-缺失值填充-K-NN算法(K-Nearest Neighbors, K-NN算法)
  • STM32与ESP8266的使用
  • SSH工具 MobaXterm的使用与快捷配置
  • 【JS|第27期】网页文件传输:Blob与Base64的对决
  • 优化理论及应用精解【8】
  • 视频生成3D模型luma AI Dashboard
  • shell脚本中sed命令如何使用变量
  • 开发适合el-dialog的拉伸拖拽自定义指令和适配自定义的图片查看组件
  • 从主流技术架构视角剖析 Java Web 项目的性能测试策略与挑战
  • 研1日记13
  • unity3d入门教程六
  • 校验(网络传输)
  • PHP环境搭建
  • 函数模板(初阶)
  • VuePress搭建文档网站/个人博客(详细配置)之站点配置
  • 海鲜市场|基于springboot的网络海鲜市场系设计与实现(附项目源码+论文+数据库)