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"}];