javascript - 根据值删除数组内的对象
问题描述
如果对象的值与条件匹配,我想问如何删除数组中的元素。
例如:
[
{
"id": 1,
"sender": "a",
"receiver": "b"
},
{
"id": 2,
"sender": "b",
"receiver": "c"
}
{
"id": 3,
"sender": "a",
"receiver": "c"
}
]
如果发送者和/或接收者的值为“a”,我想删除该元素,在本例中为 ids 1 和 3。我该怎么做?我已经阅读了关于 splice 的内容,并且我尝试了 for 循环,但无法完成我想要的。
这是我尝试过的:
for (let index = 0; index < arr.length; index++) {
if (arr[index].sender == "a") {
arr.splice(index.sender, 1);
}
if(arr[index].receiver == "a") {
arr.splice(index.receiver, 1);
}
}
尽管如此,数组中的对象仍然没有被删除。
解决方案
您可以使用过滤器方法更轻松地完成此操作。你像这样使用它:
let array = [
{
id: 1,
sender: 'a',
receiver: 'b'
},
{
id: 2,
sender: 'b',
receiver: 'c'
},
{
id: 3,
sender: 'a',
receiver: 'c'
}
];
// filter with one condition i.e either sender or receiver
let modifiedArray = array.filter(function(item) {
return item.sender !== 'b';
});
console.log(modifiedArray);
// Filter with both conditions i.e sender and receiver is checked
let mod_array = array.filter(function(item) {
if (item.sender !== 'a' && item.receiver !== 'a') {
return item;
}
});
console.log(mod_array);
推荐阅读
- javascript - 如何以特定格式显示今天的完整日期?
- php - mysqli_query():第 1924 行 /home/lucindabrummitt/public_html/blog/wp-includes/wp-db.php 中的空查询
- python-3.x - Python 3.7 编译的 Fortran PYD (DLL) 不工作。[WinError 1114] 动态链接库 (DLL) 初始化例程失败
- retrofit2 - 创建一个 Observable,它在订阅时生成一个 Single,但它会停止并重用特定值
- javascript - 如何使用数据库信息在 Django 框架中的 Leaflet 中进行映射?
- javascript - 使用 onclick HTML 的灰色背景
- sql - 使用 Join 的高级查询
- c# - ASP.NET:标签助手不起作用。从哪里开始调试?
- c# - 为什么顺序在着色器中很重要?
- c# - 如何在 dll 中创建可以通过运行它的应用程序更改的条件