首页 > 解决方案 > 将一个对象的属性名称复制到另一个而不复制值

问题描述

给定一个对象

const firstObject = {
    key1 : 'value1',
    key2 : 'value2'
    // Many more keys here
};

我想创建另一个这样的对象

const secondObject = {
    key1 : false,
    key2 : false
    // Many more keys here same as firstObject
};

我知道我可以做Object.keys()并迭代它们以添加值,或者做一个浅拷贝然后更改值,但我正在寻找一个高性能的解决方案。

那么,鉴于密钥是动态的(不是在任何地方进行硬编码)并且我们只需要针对一级深度密钥的解决方案,那么实现它的最高效方法是什么?

PS:ES6 解决方案也很好,反正我用的是 babel。

标签: javascript

解决方案


  Object.fromEntries( Object.keys(firstObject).map(k => ([k, false])))

必须测试是否“性能更高” 。


推荐阅读