javascript - 基于其他数组从javascript中的数组中删除项目
问题描述
我想从列表中完全删除一个项目,下面是列表
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;
});
解决方案
map
在数组上使用list
可将现有的对象数组修改为没有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);
对于您要删除的键数组以及不影响原始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);
推荐阅读
- ubuntu - 请帮我解决这些我正在安装我的 sql 突然错误来了
- vue.js - Vue 组件仅在鼠标悬停后更新
- presto - Presto 函数 APPROX_PERCENTILE 得到不存在的结果
- python - 将字符串列表转换为整数列表
- c# - C# 无法从传输连接读取数据:现有连接被远程主机强行关闭。读取网络流
- python - 用 BeautifulSoup4 解析网页表格
- unity3d - 我可以在计算着色器中使用 unity unitycg.cginc 吗?
- node.js - 脚手架功能在某些节点包中如何工作?
- javascript - 我们可以过滤存储在 JSON 中的数据吗?
- reactjs - 如何从流协议获取媒体文件的持续时间