我有两个 JSON 文件,第一个是origin.json,第二个是newData.json.
我想更新Origin基于的子值NewData,但更新必须只影响存在于userAgents中的项目newData.json。
以下代码展示了我需要转换的数据:
var originData = {
"userAgents": [
"Chrome",
"Safari"
],
"tests": [
{
"name": "a",
"errs": []
},
{
"name": "b",
"errs": [
{
"userAgent": "Chrome"
},
{
"userAgent": "Safari"
}
]
}
]
};
var newData = {
"userAgents": [
"Chrome"
],
"tests": [
{
"name": "a",
"errs": []
},
{
"name": "b",
"errs": []
}
]
};
originData.tests.forEach(function (originItem) {
newData.tests.forEach(function (newItem) {
if (newItem.name === originItem.name) {
originItem.errs = newItem.errs
}
})
});
console.log(originData);
在这种情况下,结果是这样的:
{
"userAgents": [
"Chrome",
"Safari"
],
"tests": [
{
"name": "a",
"errs": []
},
{
"name": "b",
"errs": []
}
]
}
但是这个结果是错误的,正确的结果应该是这样的:
{
"userAgents": [
"Chrome",
"Safari"
],
"tests": [
{
"name": "a",
"errs": []
},
{
"name": "b",
"errs": [
{
"userAgent": "Safari"
}
]
}
]
}
您知道如何使用 Node.js 获得此结果吗?