删除部分 json 内容
Remove part of json content
我希望在给定的 time/date 过去时编辑我的 json 文件。我试过 delete termine[0] 但这并没有删除文件的一部分。
我的json-文件
[{
"datum": "2020-10-10T10:00:00",
"event": "..."
},
{
"datum": "2021-10-10T10:00:00",
"event": "..."
},...
]
我的代码
let termine = JSON.parse(fs.readFileSync("/home/pi/NeonBot/termine.json", "utf8"))
var now = new Date();
var date = termine[0].datum
date = new Date(date)
do {
delete termine[0]
console.log(`Deleted Event`)
} while (date < now)
你有一个无限循环,因为你永远不会在循环中更新 date
。
你也应该在删除之前检查条件,而不是之后。
while (new Date(termine[0].datum_) < now) {
delete termine[0];
console.log("Deleted Event");
}
不是一次删除一个元素,而是找到要保留的第一个元素的索引,然后使用 splice
删除所有元素。
let index = termine.findIndex(event => new Date(event.datum) >= now);
if (index > 0) {
termine.splice(0, index);
}
fs.writeFileSync("/home/pi/NeonBot/termine.json", JSON.stringify(termine), "utf8");
我希望在给定的 time/date 过去时编辑我的 json 文件。我试过 delete termine[0] 但这并没有删除文件的一部分。
我的json-文件
[{
"datum": "2020-10-10T10:00:00",
"event": "..."
},
{
"datum": "2021-10-10T10:00:00",
"event": "..."
},...
]
我的代码
let termine = JSON.parse(fs.readFileSync("/home/pi/NeonBot/termine.json", "utf8"))
var now = new Date();
var date = termine[0].datum
date = new Date(date)
do {
delete termine[0]
console.log(`Deleted Event`)
} while (date < now)
你有一个无限循环,因为你永远不会在循环中更新 date
。
你也应该在删除之前检查条件,而不是之后。
while (new Date(termine[0].datum_) < now) {
delete termine[0];
console.log("Deleted Event");
}
不是一次删除一个元素,而是找到要保留的第一个元素的索引,然后使用 splice
删除所有元素。
let index = termine.findIndex(event => new Date(event.datum) >= now);
if (index > 0) {
termine.splice(0, index);
}
fs.writeFileSync("/home/pi/NeonBot/termine.json", JSON.stringify(termine), "utf8");