【发布时间】:2018-03-02 09:58:58
【问题描述】:
我有两个对象数组如下:
var listA = [
{ name: 'monday', reported: '', closed: '' },
{ name: 'tuesday', reported: '', closed: '' },
{ name: 'wednesday', reported: '', closed: '' },
{ name: 'thursday', reported: '', closed: '' },
{ name: 'friday', reported: '', closed: '' },
{ name: 'saturday', reported: '', closed: '' },
{ name: 'sunday', reported: '', closed: '' }
];
var listB = [
{ name: 'friday', reported: '23', closed: '17' },
{ name: 'tuesday', reported: '28', closed: '24' },
{ name: 'saturday', reported: '10', closed: '8' },
];
我想用 listB 中的值覆盖 listA,而不影响 listA 中对象的顺序。我用 _.unionByJSFiddle 试过了。结果如下:
{name: "friday", reported: "23", closed: "17"}
{name: "tuesday", reported: "28", closed: "24"}
{name: "saturday", reported: "10", closed: "8"}
{name: "monday", reported: "", closed: ""}
{name: "wednesday", reported: "", closed: ""}
{name: "thursday", reported: "", closed: ""}
{name: "sunday", reported: "", closed: ""}
我期待以下结果:
{name: "monday", reported: "", closed: ""}
{name: "tuesday", reported: "28", closed: "24"}
{name: "wednesday", reported: "", closed: ""}
{name: "thursday", reported: "", closed: ""}
{name: "friday", reported: "23", closed: "17"}
{name: "saturday", reported: "10", closed: "8"}
{name: "sunday", reported: "", closed: ""}
我知道如何通过迭代 listA 并用相同的 name 替换来自 listB 的值来做到这一点。但是想知道 lodash 或 ES6 是否有更好的方法来做到这一点。
【问题讨论】:
标签: javascript ecmascript-6 lodash