节点JS中的唯一ID合并2个以上的Json"/>
基于节点JS中的唯一ID合并2个以上的Json
是节点JS的新手,它基于节点JS中的唯一ID合并了2个以上的Json
[
[
{
sourcePguid: '1',
'urn:reference:000000000000000000000000019318': 'General'
}
],
[
{
sourcePguid: '2',
'urn:reference:000000000000000000000000019318123': 'General2'
}
]
]
[
[
{
sourcePguid: '1',
'urn:reference:000000000000000000000000019317': '0'
},
{
sourcePguid: '1',
'urn:reference:000000000000000000000000019319': '1'
}
],
[
{
sourcePguid: '2',
'urn:reference:000000000000000000000000019311': '0'
},
{
sourcePguid: '2',
'urn:reference:000000000000000000000000019312': '1'
}
]
]
例外的输出:
[
{
sourcePguid: '1',
'urn:reference:000000000000000000000000019318': 'General',
'urn:reference:000000000000000000000000019317': '0',
'urn:reference:000000000000000000000000019319': '1'
},
{
sourcePguid: '2',
'urn:reference:000000000000000000000000019318123': 'General2',
'urn:reference:000000000000000000000000019311': '0',
'urn:reference:000000000000000000000000019312': '1'
},
]
请问有没有人能帮助我实现节点JS中的输出。Json将有两个以上具有多个数组的唯一值。
回答如下:我使用名为lodash
的帮助程序库将数组数组展平为一个级别数组
lodash
输出是:
const _ = require('lodash');
const json1 = [
[
{
sourcePguid: '1',
'urn:reference:000000000000000000000000019318': 'General'
}
],
[
{
sourcePguid: '2',
'urn:reference:000000000000000000000000019318123': 'General2'
}
]
];
const json2 = [
[
{
sourcePguid: '1',
'urn:reference:000000000000000000000000019317': '0'
},
{
sourcePguid: '1',
'urn:reference:000000000000000000000000019319': '1'
}
],
[
{
sourcePguid: '2',
'urn:reference:000000000000000000000000019311': '0'
},
{
sourcePguid: '2',
'urn:reference:000000000000000000000000019312': '1'
}
]
];
const mergedJsons = [...json1, ...json2];
const result = _.flattenDepth(mergedJsons)
.reduce((combined, current) => {
const combinedObjectIndex = combined.findIndex(lookingFor => lookingFor.sourcePguid === current.sourcePguid);
if (combinedObjectIndex < 0) {
// if object is new, lets add it to result array
combined.push(current);
} else {
// if object exists in array, lets merge them together
combined[combinedObjectIndex] = {..bined[combinedObjectIndex], ...current};
}
return combined;
}, []);
console.log(result);
更多推荐
基于节点JS中的唯一ID合并2个以上的Json
发布评论