javascript - 如何删除数组不同对象中的相似键
问题描述
所以我有一个包含多个对象的对象数组,我想从对象中删除日期键,即 createdDate 和 modifiedDate
我尝试使用 for 循环并使用删除功能,但没有任何反应。
var data = matchScoreData.tbl_FallOfWicket;
matchScoreData.tbl_FallOfWicket.forEach(element => {
if (matchScoreData.tbl_FallOfWicket.hasOwnProperty("createdDate")) {
delete ["createdDate"];
}
});
console.table(data);
var matchScoreData = {
"tbl_FallOfWicket": [
{
"pk_fallWicketID": 119,
"fk_matchID": 133137,
"fk_teamID": 141065,
"fk_dismissTypeID": 3,
"fk_dismissPlayerID": 969155,
"run": 40,
"wicket": 1,
"over": "5.1",
"inning": 1,
"createdDate": "2018-08-18T03:06:12+0000",
"modifiedDate": "",
},
{
"pk_fallWicketID": 120,
"fk_matchID": 133137,
"fk_teamID": 141065,
"fk_dismissTypeID": 1,
"fk_dismissPlayerID": 939721,
"run": 88,
"wicket": 2,
"over": "9.5",
"createdDate": "2018-08-18T03:06:12+0000",
"modifiedDate": "",
"inning": 1
}
]};
我在输出中得到相同的值
解决方案
您的问题是您正在使用delete["createdDate"]
它,它应该是delete element["createdDate"]
它可以从迭代中删除正确的属性element
。
matchScoreData.tbl_FallOfWicket.forEach(element => {
if (element.hasOwnProperty("createdDate")) {
delete element["createdDate"];
}
});
笔记:
您的代码的另一个更大问题是
if (matchScoreData.tbl_FallOfWicket.hasOwnProperty("createdDate"))
matchScoreData.tbl_FallOfWicket
是一个数组,因此此条件将始终返回 false。因此delete['...']
永远不会被执行。
您将不得不检查单个对象。
if (element.hasOwnProperty("createdDate"))
演示:
var matchScoreData = {
"tbl_FallOfWicket": [{
"pk_fallWicketID": 119,
"fk_matchID": 133137,
"fk_teamID": 141065,
"fk_dismissTypeID": 3,
"fk_dismissPlayerID": 969155,
"run": 40,
"wicket": 1,
"over": "5.1",
"inning": 1,
"createdDate": "2018-08-18T03:06:12+0000",
"modifiedDate": "",
},
{
"pk_fallWicketID": 120,
"fk_matchID": 133137,
"fk_teamID": 141065,
"fk_dismissTypeID": 1,
"fk_dismissPlayerID": 939721,
"run": 88,
"wicket": 2,
"over": "9.5",
"createdDate": "2018-08-18T03:06:12+0000",
"modifiedDate": "",
"inning": 1
}
]
};
var data = matchScoreData.tbl_FallOfWicket;
matchScoreData.tbl_FallOfWicket.forEach(element => {
if (element.hasOwnProperty("createdDate")) {
delete element["createdDate"];
}
});
console.log(data);
推荐阅读
- c# - 如何在不更改上次写入日期的情况下从 C# 代码中保存文件?
- php - 编辑:通过 PHP API 的 MikroTik IP 记帐仅存储在数据库中指定的信息
- python - Django- ModuleNotFoundError:没有名为“django.urls”的模块
- android - Cordova InAppBrowser 不会在 android 上重定向
- visual-studio-extensions - 如何以编程方式获取 Visual Studio 使用的内置文件类型图标
- docker - Kubectl 随机返回“TLS 握手超时”(在 localhost K8s 上运行)
- javascript - jQuery使元素反复闪烁
- ios - 使用静态库创建通用框架
- php - 客户端和服务器 php 套接字
- c# - 保持图像前面的标签位置(拉伸模式是统一的)不管窗口 WPF 的大小调整