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

红河公司 网站建设外贸网站展示还是商城

红河公司 网站建设,外贸网站展示还是商城,免费商标图案logo,做效果图比较好的模型网站有哪些合并对象在 Typescript 中的实现与应用 文章目录 合并对象在 Typescript 中的实现与应用一、简介二、实现1、函数实现2、参数说明3、返回值 三、使用示例四、实际应用场景五、拓展:使用 lodash-es 的 assign 函数进行对象合并1、简介2、安装与导入3、基础用法4、注意…

合并对象在 Typescript 中的实现与应用

文章目录

  • 合并对象在 Typescript 中的实现与应用
  • 一、简介
  • 二、实现
    • 1、函数实现
    • 2、参数说明
    • 3、返回值
  • 三、使用示例
  • 四、实际应用场景
  • 五、拓展:使用 lodash-es 的 `assign` 函数进行对象合并
    • 1、简介
    • 2、安装与导入
    • 3、基础用法
    • 4、注意事项

一、简介

在日常开发中,尤其是在处理配置对象或者嵌套的数据结构时,对象的深度合并成为一项常见需求。这篇博客将介绍如何在JavaScript中实现对象的深度合并,并提供具体的使用例子。

二、实现

1、函数实现

首先,我们来看一下深度合并(Deep Merge)函数的代码实现。

import { isObject } from '@/utils/is'/*** 深度合并* @param src 源对象* @param target 目标对象*/
export function deepMerge<T = any>(src: any = {}, target: any = {}): T {let key: stringfor (key in target) {src[key] = isObject(src[key]) ? deepMerge(src[key], target[key]) : (src[key] = target[key])}return src as T
}

isObject 代码

export function isObject(val: any): val is Record<any, any> {return val !== null && is(val, 'Object')
}

2、参数说明

  • src: 源对象,即要被合并到的对象。
  • target: 目标对象,即从中获取数据来合并到src的对象。

3、返回值

函数返回一个类型为T的新对象,这个新对象是srctarget对象的深度合并结果。

三、使用示例

假设你有两个对象,一个是person,另一个是info

const person = {name: '张三',age: 30,address: {city: '北京',country: '中国'}
}const info = {job: '工程师',address: {street: '科技路'}
}

使用deepMerge函数,你可以这样合并这两个对象:

import { deepMerge } from '@/path-to-deepMerge'const mergedPerson = deepMerge(person, info)console.log(mergedPerson)

输出结果:

{name: '张三',age: 30,job: '工程师',address: {city: '北京',country: '中国',street: '科技路'}
}

四、实际应用场景

深度合并对象在许多场景下都非常有用:

  1. 配置合并:当你有多个配置对象需要合并时。
  2. 状态管理:在使用如 Vuex 或者 Redux 这样的状态管理库时。
  3. API响应合并:当你从多个API接口获取数据并需要合并到一个对象时。

五、拓展:使用 lodash-es 的 assign 函数进行对象合并

1、简介

lodash-es是一个提供了很多有用工具函数的JavaScript库。其中,assign函数用于将一个或多个源对象自身的可枚举属性从一个对象复制到目标对象。本文将详细介绍如何使用lodash-es中的assign函数进行对象合并。

2、安装与导入

首先,你需要安装lodash-es

npm install lodash-es --save

然后,在你的代码中导入assign函数。

import { assign } from 'lodash-es';

3、基础用法

assign函数接受一个目标对象和一个或多个源对象作为参数,并将源对象的属性复制到目标对象中。

const object = { 'a': 1 };
const source = { 'b': 2 };
const result = assign(object, source);console.log(result);
// 输出: { 'a': 1, 'b': 2 }// 注意:目标对象也被改变了
console.log(object);
// 输出: { 'a': 1, 'b': 2 }

4、注意事项

  • assign仅复制对象自身的可枚举属性。
  • 它不会进行深度合并。
  • 如果多个源对象有相同的属性,那么后面的源对象会覆盖前面的。
const object = { 'a': 1, 'b': 2 };
const source1 = { 'b': 3, 'c': 4 };
const source2 = { 'c': 5 };const result = assign(object, source1, source2);console.log(result);
// 输出: { 'a': 1, 'b': 3, 'c': 5 }
http://www.yayakq.cn/news/675786/

相关文章:

  • 江苏建设厅官方网站有哪些程序网站
  • 网站备案信息保护wordpress显示投稿者
  • php网站服务器架设如何看网站建立时间
  • 贵阳网站页面设计如何做网络营销推广5
  • 自己的网站做微信接口平台有什么网站可以接活做设计标志
  • 网站后台不能编辑wordpress内容
  • 高端企业网站建设注意问题德州建设局网站
  • 免费建设电影网站常熟智能网站建设
  • 商务网站开发与建设论文海会网络建设网站
  • 毕业设计网站网络营销策划过程
  • 怀远网站建设哪家好网站建设服务器环境配置
  • 网站建设前期准备方案wordpress水平菜单
  • 津做网站wordpress国内不使用方法
  • 佛山家具网站建设公司广东省农业农村厅官网首页
  • 最新网站开发软件做淘宝客为什么要建网站
  • 外卖网站怎么做销量苏州那家公司做网站比较好
  • 官网和商城结合的网站营销型网站建设空间必须是
  • 免费做金融网站wordpress dux1.9
  • 北京市建设监理协会网站怎么用 c文件做网站
  • 石家庄网站开发多少钱镇平做网站
  • 电子商务网站建设课程设计做网站傻瓜软件
  • 成都网站设计公网站建设网站建设 网站制作
  • 兰州光辉网站建设三维家设计官网
  • 连云港网站建设推广龙岗区建设工程交易服务网
  • 一个朋友找我做网站该收多少钱网站备案密码重置申请表
  • 郑州企业网站设计公司哪家好策划书中网站制作怎么写
  • 猎头自己在哪个网站做单云南城市建设职业学院成绩查询网站
  • 郑州中心站外贸的整个详细流程
  • 网站制作找哪家公司好wordpress修改教程视频
  • 深圳英文建站公司网站建设需要会