我试图将对象值从一个数组添加到另一个数组中的另一个对象
第一个数组结构是:
var array1 = [
    { email: 'user1@example.com', status: 'offline' },
    { email: 'user2@example.com', status: 'online' },
    { email: 'user3@example.com', status: 'idle' }
]
var array2 = [
    { email: 'user1@example.com', status: '', activeTime: '1hr', logedIn: true, },
    { email: 'user1@example.com', status: '', activeTime: '1hr', logedIn: true, },
    { email: 'user1@example.com', status: '', activeTime: '1hr', logedIn: true, },
    { email: 'user2@example.com', status: '', activeTime: '2hr', logedIn: false, },
    { email: 'user2@example.com', status: '', activeTime: '2hr', logedIn: false, },
    { email: 'user2@example.com', status: '', activeTime: '2hr', logedIn: false, },
    { email: 'user2@example.com', status: '', activeTime: '2hr', logedIn: false, },
    { email: 'user3@example.com', status: '', activeTime: '1.5hr', logedIn: true, },
]
Run Code Online (Sandbox Code Playgroud)
预期结果将是这样的:
var arrayJoined = [
    { email: 'user1@example.com', status: 'offline', activeTime: '1hr', logedIn: true, },
    { email: 'user1@example.com', status: 'offline', activeTime: '1hr', logedIn: true, },
    { email: 'user1@example.com', status: 'offline', activeTime: '1hr', logedIn: true, },
    { email: 'user2@example.com', status: 'online', activeTime: '2hr', logedIn: false, },
    { email: 'user2@example.com', status: 'online', activeTime: '2hr', logedIn: false, },
    { email: 'user2@example.com', status: 'online', activeTime: '2hr', logedIn: false, },
    { email: 'user2@example.com', status: 'online', activeTime: '2hr', logedIn: false, },
    { email: 'user3@example.com', status: 'idle', activeTime: '1.5hr', logedIn: true, },
]
Run Code Online (Sandbox Code Playgroud)
    您将要映射到第二个数组,并将两个对象合并在一起,其中的电子邮件是相同的。因此,您可以使用Array.map和Object.assign:
function merge(array1, array2) {
  return array2.map(obj => {
    var matchingObj = array1.find(el => el.email === obj.email)
    return Object.assign({}, obj, matchingObj)
  })
}
Run Code Online (Sandbox Code Playgroud)