JS 按照条件合并添加对象
//原数据var aa = {
'ADU': {
'ADU': {
"Syc": {
'id': 'TS112',
'value': "1"
}
}
}
}
//新加数据
var bb = {
'ADU': { //'BYT'
'STH': {
"Txc": {
'id': 'TS112',
'value': "1"
}
}
}
}
两个对象 第一个对象是原数据 第二个是新增数据 要对这两个对象合并
条件1:对象bb的第一层key值ADU跟对象aa的第一层key值一样,则把对象bb的key值STH添加到对象aa里面。如:
'ADU': { 'ADU': {
"Syc": {
'id': 'TS112',
'value': "1"
}
},
'STH': {
"Txc": {
'id': 'TS112',
'value': "1"
}
}
}
条件1:对象bb的第一层key值ADU跟对象aa的第一层key值不一样,则把对象bb的key值STH添加到对象aa里面。如:
'ADU': { 'ADU': {
"Syc": {
'id': 'TS112',
'value': "1"
}
}
},
'BYT': {
'STH': {
"Txc": {
'id': 'TS112',
'value': "1"
}
}
}
对象三层都是这样的规则处理。
回答:
lodash的merge方法
https://lodash.com/docs/4.17....
回答:
//原数据var aa = {
'ADU': {
'ADU': {
"Syc": {
'id': 'TS112',
'value': "1"
}
}
}
}
//新加数据
var bb = {
'ADU': { //'BYT'
'STH': {
"Txc": {
'id': 'TS112',
'value': "1"
}
}
}
}
{
const isType = (obj, type)=>Object.prototype.toString.call(obj) === `[object ${type}]`;
const extend = (obj1,obj2)=>{
Object.entries(obj2).forEach(([key, val])=>isType(val, 'Object') ? extend((obj1[key]||={}), val) : (obj1[key]=val))
}
extend(aa, bb);
}
以上是 JS 按照条件合并添加对象 的全部内容, 来源链接: utcz.com/p/936236.html