Javascript 从第二个数组中存在的第一个数组中删除值

Javascript 从第二个数组中存在的第一个数组中删除值,javascript,Javascript,我有一个变量: var first = [{name: "john", key: "1"}, {name: "george", key: "3"}, {name: "paul", key: "2"}, {name: "ringo", key: "4"}]; var second = [{key: "2"}, {key: "4"}, {key: "3"}]

我有一个变量:

var first = [{name: "john", key: "1"}, 
             {name: "george", key: "3"}, 
             {name: "paul", key: "2"},
             {name: "ringo", key: "4"}];

var second = [{key: "2"}, 
              {key: "4"}, 
              {key: "3"}]
我试图创建一个新对象,该对象将忽略在
秒处丢失的值,在本例中为
名称:“john”

以下是我尝试的代码:

var third = first.map(obj => {
    var retVal = {};
    retVal["name"] = obj.name;
    retVal["key"] = obj.key;
    return retVal;
});
此代码将添加所有并成为:

var third = [{name: "john", key: "1"}, 
             {name: "george", key: "3"}, 
             {name: "paul", key: "2"},
             {name: "ringo", key: "4"}];
,但无法找出不添加我要忽略的限制的限制


请注意,常规循环不是交易,它必须与
.map

一起使用。您可以使用
过滤器
映射
包括
功能,如下所示:

var first=[{name:“john”,key:“1”},{name:“george”,key:“3”},{name:“paul”,key:“2”},{name:“ringo”,key:“4”}],
second=[{key:“2”},{key:“4”},{key:“3”}],
keys=second.map(o=>o.key),
result=first.filter(o=>keys.includes(o.key));
控制台日志(结果)

.as控制台包装{最大高度:100%!重要;顶部:0;}
@guautemoczihuataneho很棒@Guautemoczihuataneo你可以在任何时候投票,等待只是为了接受;-)
var third = [{name: "john", key: "1"}, 
             {name: "george", key: "3"}, 
             {name: "paul", key: "2"},
             {name: "ringo", key: "4"}];