JavaScript 覆盖对象字段级别
时间:2022-07-24
本文章向大家介绍JavaScript 覆盖对象字段级别,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
下列的代码可以实现a和b两个对象进行覆盖合并,不同于object.asgin 会覆盖。下列的代码只会字段级覆盖。
/**
* 把source的字段,覆盖设置到target的字段,递归覆盖,不直接覆盖对象
* @param target
* @param source
*/
function extend(target, source) {
for (let key in source) {
let newValue = source[key];
let oldValue = target[key];
//如果 是数组,有值就追加,没值就覆盖
if (Array.isArray(oldValue)) {
target[key] = [...oldValue, ...newValue];
} else if (typeof (oldValue) == "object") {
//如果是object 递归设置
target[key] = extend(oldValue, newValue);
} else {
//判断,如果不是object,就直接设置
//普通字段
target[key] = newValue;
}
}
return target
}
var a = {
obj: {
name: '张三',
age: 18,
student: {
name: '王五',
classes: {
name: '1年级1班',
teacher: {
name: '王老师',
age: 20
}
}
}
},
array: [{
c: 13
}, {
b: 22
}],
aint: 10,
astring: '123'
}
var b = {
obj: {
name: '李四',
aaa: '555',
student: {
ss: '321',
classes: {
aget: 18,
teacher: {
age: 30
}
}
}
}
}
// let temp = Object.assign(a, b);
let temp = extend(a, b);
console.log(JSON.stringify(temp, "", "t"));
- Stream-快速入门Stream编程
- MySQL Regular Expression
- Jenkin-持续集成
- 4.3.4.7 Pattern Matching
- mysql left join、right join、inner join用法分析
- _CrtSetDbgFlag
- UNPv13:#第3章#套接字编程简介
- UNPv13:#第4章#基于TCP套接字编程
- UNPv13:#第5章#TCP客户/服务器程序示例
- MySQL replace用法简介
- YV12转RGB24的计算转换和bmp(dib)文件的显示保存
- 零基础入门深度学习 | 第四章:卷积神经网络
- MySQL binlog日志大小超过限定范围
- MySQL系列优化(一)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法