Быстрое копирование объекта без изменения переменной

Требуется скопировать все поля объекта a в объект b, при этом b=const.

Объект b изначально может уже иметь некоторые свойства, их не должно быть в результате.

Есть ли более быстрое решение, чем это?

const a = {a: 1, b: 2, c: 3}
const b = {e: 1, f: 2, g: 3}

for (const key in b)
  delete b[key]

Object.assign(b, a)


Ответы (1 шт):

Автор решения: VerZsuT

В ходе тестов более быстрым решением в современных браузерах было

for (const key in b) {
    if (!Object.hasOwn(a, key))
        delete b[key]
}
for (const key in a)
    b[key] = a[key]

Казалось бы, две итерации и проверка Object.hasOwn, но почему-то это выполняется почти в два раза быстрее чем мой пример

→ Ссылка