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

tap*_*ave 1 javascript arrays jquery 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: "match5"}]
Run Code Online (Sandbox Code Playgroud)

我想match_number从列表中完全删除,并希望实现像

var list = [{id: 1, name: "match1"},
     {id: 2, name: "match2"},
     {id: 3, name: "match3"},
     {id: 4, name: "match4"},
     {id: 5, name: "match5"}]
Run Code Online (Sandbox Code Playgroud)

下面是我获得单个项目结果的代码,但是我有一个数组,其中键给出了像['match_number','id'].在此基础上我想从主列表中删除项目.

我怎么解决这个问题?

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

Ank*_*wal 6

maplist数组上使用以修改现有的对象数组以使其不具有match_number键.

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

list.map(obj => delete obj.match_number);
console.log(list);
Run Code Online (Sandbox Code Playgroud)

对于要删除的键阵列以及不影响原始阵列的键,list您可以使用此键,

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"}
];
var res = [];
var removeArray = ['match_number','id'];
list.forEach((obj) => {
  let tempObj = {};
  Object.keys(obj).forEach((key)=>{
    if(removeArray.indexOf(key) === -1){
      tempObj[key] = obj[key];
    }
  });
  res.push(tempObj);
});
console.log(res);
console.log(list);
Run Code Online (Sandbox Code Playgroud)