基于其他数组从javascript中的数组中删除项

基于其他数组从javascript中的数组中删除项,javascript,jquery,arrays,arraylist,javascript-objects,Javascript,Jquery,Arrays,Arraylist,Javascript Objects,我想从列表中完全删除一项,下面是列表 var list = [{id: 1, match_number: 1, name: "match1"}, {id: 2, match_number: 2, name: "match2"}, {id: 3, match_number: 3, name: "match3"}, {id: 4, match_number: 4, name: "match4"}, {id: 5, match_number: 5, name:

我想从列表中完全删除一项,下面是列表

var list = [{id: 1, match_number: 1, name: "match1"},
     {id: 2, match_number: 2, name: "match2"},
     {id: 3, match_number: 3, name: "match3"},
     {id: 4, match_number: 4, name: "match4"},
     {id: 5, match_number: 5, name: "match5"}]
我想从列表中完全删除
match_number
,并希望实现类似的目标

var list = [{id: 1, name: "match1"},
     {id: 2, name: "match2"},
     {id: 3, name: "match3"},
     {id: 4, name: "match4"},
     {id: 5, name: "match5"}]
下面是我获得单个项目结果的代码,但我有一个数组,其中的键是像
['match_number','id']
一样给出的。基于此,我想从主列表中删除项目

我怎样才能解决这个问题

//code for single item
var listitem = list.map((i) => {
    const {match_number,...item} = i;
    return item;
});

使用
列表
数组上的
映射
,将现有对象数组修改为不具有
匹配编号

var列表=[
{id:1,匹配号:1,名称:“match1”},
{id:2,匹配号:2,名称:“match2”},
{id:3,匹配号:3,名称:“match3”},
{id:4,匹配号:4,名称:“match4”},
{id:5,匹配号:5,名称:“match5”}
];
map(obj=>删除obj.match_编号);

控制台日志(列表)
使用
列表
数组上的
映射
修改现有对象数组,使其不具有
匹配编号

var列表=[
{id:1,匹配号:1,名称:“match1”},
{id:2,匹配号:2,名称:“match2”},
{id:3,匹配号:3,名称:“match3”},
{id:4,匹配号:4,名称:“match4”},
{id:5,匹配号:5,名称:“match5”}
];
map(obj=>删除obj.match_编号);

控制台日志(列表)
将要删除的属性保留在下面的数组中,如
attertoremove
,并与
map
forEach一起使用
delete

var列表=[
{id:1,匹配号:1,名称:“match1”},
{id:2,匹配号:2,名称:“match2”},
{id:3,匹配号:3,名称:“match3”},
{id:4,匹配号:4,名称:“match4”},
{id:5,匹配号:5,名称:“match5”}
];
var attertoremove=['match_number','id'];
map(obj=>attertoremove.forEach(val=>deleteobj[val]);

控制台日志(列表)
将要删除的属性保留在下面的数组中,如
attertoremove
,并与
map
forEach一起使用
delete

var列表=[
{id:1,匹配号:1,名称:“match1”},
{id:2,匹配号:2,名称:“match2”},
{id:3,匹配号:3,名称:“match3”},
{id:4,匹配号:4,名称:“match4”},
{id:5,匹配号:5,名称:“match5”}
];
var attertoremove=['match_number','id'];
map(obj=>attertoremove.forEach(val=>deleteobj[val]);

控制台日志(列表)
您可以使用
解构
rest
循环键并删除它们:

var列表=[
{id:1,匹配号:1,名称:“match1”},
{id:2,匹配号:2,名称:“match2”},
{id:3,匹配号:3,名称:“match3”},
{id:4,匹配号:4,名称:“match4”},
{id:5,匹配号:5,名称:“match5”}
];
var keys=['匹配_编号','id'];
list=list.map(项=>{
变量x,剩余=项目;
keys.forEach(key=>{
({[key]:x,…rest}=rest);
});
返回休息;
});

控制台日志(列表)
您可以使用
解构
rest
循环键并删除它们:

var列表=[
{id:1,匹配号:1,名称:“match1”},
{id:2,匹配号:2,名称:“match2”},
{id:3,匹配号:3,名称:“match3”},
{id:4,匹配号:4,名称:“match4”},
{id:5,匹配号:5,名称:“match5”}
];
var keys=['匹配_编号','id'];
list=list.map(项=>{
变量x,剩余=项目;
keys.forEach(key=>{
({[key]:x,…rest}=rest);
});
返回休息;
});
控制台日志(列表)Jquery+ES6
您还可以使用来使用运算符获得所需的结果

演示

var list=[{id:1,匹配号:1,名称:“match1”},
{id:2,匹配号:2,名称:“match2”},
{id:3,匹配号:3,名称:“match3”},
{id:4,匹配号:4,名称:“match4”},
{id:5,match_编号:5,名称:“match5”}]
让removeKeys=['match_number','id'];
让结果=$.map(列表,(o)=>{
$。每个(删除键,(i,v)=>删除o[v]);
返回o;
},[]);
控制台日志(结果)
。作为控制台包装{最大高度:100%!重要;顶部:0;}
Jquery+ES6 您还可以使用来使用运算符获得所需的结果

演示

var list=[{id:1,匹配号:1,名称:“match1”},
{id:2,匹配号:2,名称:“match2”},
{id:3,匹配号:3,名称:“match3”},
{id:4,匹配号:4,名称:“match4”},
{id:5,match_编号:5,名称:“match5”}]
让removeKeys=['match_number','id'];
让结果=$.map(列表,(o)=>{
$。每个(删除键,(i,v)=>删除o[v]);
返回o;
},[]);
控制台日志(结果)
。作为控制台包装{最大高度:100%!重要;顶部:0;}

但我希望以不变的方式从列表中删除项,并希望基于其他项array@tapandave您的另一个阵列在哪里?在这个问题中,您提到了
immutable
way在哪里?我在下面提到了,基于另一个数组,即['match_number','id'],我想从list@tapandave酷,检查编辑后的答案。我在这里添加了另一个片段。如果还有一些问题,请告诉我。但是我想以一种不变的方式从列表中删除项目,并希望以其他方式为基础array@tapandave您的另一个阵列在哪里?在这个问题中,您提到了
immutable
way在哪里?我在下面提到了,基于另一个数组,即['match_number','id'],我想从list@tapandave酷,检查编辑后的答案。我在这里添加了另一个片段。如果仍然存在一些问题,请告诉我。因此,您希望将其从原始阵列中删除?不,我不希望将其从原始阵列中删除。您希望将其从原始阵列中删除吗?不,我不希望将其从原始阵列中删除