按键数组过滤 javascript 地图对象

dan*_*elo 0 javascript arrays dictionary filter

我有一系列键:

var arr = ['var1', 'var2', 'var3']
Run Code Online (Sandbox Code Playgroud)

我还有一个 Javascript 映射对象,其中包含四个键(var1、var2、var3、var4)和值(1、2、3、4),我想通过 arr 数组进行过滤,因此我得到一个仅包含键(var1、var2、var3)和值(1、2、3)。有谁知道我该怎么做?

kLa*_*abz 5

您可以使用reduce( 1 )填充一个新对象:

var map = {a: 1, b: 2, c: 3};
var keys = ["b", "c", "d"];

var c = keys.reduce(function(obj, key) {
    if (map.hasOwnProperty(key)) obj[key] = map[key];
    return obj;
}, {}); // {b: 2, c: 3}
Run Code Online (Sandbox Code Playgroud)