投影 JavaScript 对象字段的最佳方法是什么?

Rav*_*vta 6 javascript optimization ecmascript-5 ecmascript-6

我必须将 javascript 的一些字段投影到新对象。

例如我有一个下面的对象

var obj = { fn : 'Abc', 
            ln : 'Xyz', 
            id : 123, 
            nt : 'Note', 
            sl : 50000}
Run Code Online (Sandbox Code Playgroud)

我想要包含的新对象 fn and id

var projectedObj = { fn : 'Abc', id : 123 }
Run Code Online (Sandbox Code Playgroud)

基于投影

var projection = { fn : 1, id : 1 }
Run Code Online (Sandbox Code Playgroud)

像这样的东西

var projectedObj = project(obj, projection);
Run Code Online (Sandbox Code Playgroud)

那么什么是最好的方法或优化的方法来做到这一点。

ayu*_*hgp 4

只需循环遍历投影对象并投影键即可。例如,

function project(obj, projection) {
    let projectedObj = {}
    for(let key in projection) {
        projectedObj[key] = obj[key];
    }
    return projectedObj;
}
Run Code Online (Sandbox Code Playgroud)