我的代码
var result = [];
var datax = [{
"tag": "TH000144"
}, {
"tag": "TH000147"
}, {
"tag": "TH000166"
}, {
"tag": "TH000169"
}, {
"tag": "TH000170"
}];
var newdatax = [{
"serial": "14563",
"tag": "TH000144"
}, {
"serial": "7777",
"tag": "TH000147"
}, {
"tag": "TH000169",
"serial": null
}];
var result = lodash.merge(datax, newdatax);
结果
[{
"tag": "TH000144",
"serial": "14563"
}, {
"tag": "TH000147",
"serial": "7777"
}, {
"tag": "TH000169",
"serial": null
}, {
"tag": "TH000169"
}, {
"tag": "TH000170"
}]
我需要这样
[{
"tag": "TH000144",
"serial": "14563"
}, {
"tag": "TH000147",
"serial": "7777"
}, {
"tag": "TH000169",
"serial": null
}, {
"tag": "TH000166"
}, {
"tag": "TH000170"
}]
我的代码哪里错了?
最佳答案
反转合并的参数,如_.merge(newdatax, datax);
我对问题的看法:
当递归合并函数到达TH000169
时,它解析为未定义;似乎很可能是由于序列号的 null
值所致。文档提到了这个潜在的挂断 HERE 。该文档还建议它应采用 _.merge(destination, source);
的形式。
var result = [];
var datax = [{
"tag": "TH000144"
}, {
"tag": "TH000147"
}, {
"tag": "TH000166"
}, {
"tag": "TH000169"
}, {
"tag": "TH000170"
}];
var newdatax = [{
"serial": "14563",
"tag": "TH000144"
}, {
"serial": "7777",
"tag": "TH000147"
}, {
"tag": "TH000169",
"serial": null
}];
var result = _.merge(newdatax, datax);
console.log(JSON.stringify(result, null, 4));
结果
[
{
"serial": "14563",
"tag": "TH000144"
},
{
"serial": "7777",
"tag": "TH000147"
},
{
"tag": "TH000166",
"serial": null
},
{
"tag": "TH000169"
},
{
"tag": "TH000170"
}
]
关于javascript - 使用Lodash合并数组,为什么结果重复数组值?,我的代码哪里错了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27518349/