删除部分 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");