JS 按照条件合并添加对象

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

回到顶部