gpt4 book ai didi

javascript - 搜索最大 id 并在 JSON 文件中添加新的最大 id (NodeJS)

转载 作者:行者123 更新时间:2023-11-30 11:53:13 25 4
gpt4 key购买 nike

在执行插入操作时,我试图将下一个最大的 ID 添加到 JSON 文件中。问题是,当我有例如 id: 13 时,它会创建 id: 14 的新对象并重写 id: 14 的旧对象,之后我有 2 个具有相同 id 的对象。

我做错了什么?

fs.readFile("DB.json", "utf8", function (err, data) {
var jsonFileArr = []; // DB.json objects
jsonFileArr = JSON.parse(data);


function maxValue(jsonFileArr, prop) { // Searches for the biggest numbers in DB.json
var max = "";
for (var i = 0; i < jsonFileArr.length ; i++) {
if (!max || parseInt(jsonFileArr[i][prop]) > parseInt(max[prop]))
max = jsonFileArr[i];
}
return max;
}

var maxID = maxValue(jsonFileArr, "id"); //Biggest ID

console.log("\r\nBiggest ID : " + maxID.id);
newID = ++maxID.id;

var updateData = {
id : newID, // new ID
name: POST.name, // Objects that come from POST request when i add new row in the table
alter: POST.alter,
produkt: POST.produkt,
anzahl: POST.anzahl
}

jsonFileArr.push(updateData);
var newUsers = JSON.stringify(jsonFileArr);
fs.writeFile("JSON/DB.json", newUsers, "utf8");
console.log("New user has been added with ID : " + newID);

最佳答案

用 vanilla Javascript 编写,因此应该可以直接在 Node.js 中运行。

var jsonObj = [{
"id": 3,
"player": "Carmelo Anthony",
"team": "New York Knicks"
}, {
"id": 1,
"player": "Andre Drummond",
"team": "Detroit Pistons"
}, {
"id": 2,
"player": "Anthony Davis",
"team": "New Orleans Pelicans"
}]

function getNextId(obj) {
return (Math.max.apply(Math, obj.map(function(o) {
return o.id;
})) + 1);
}


alert('Next ID is ' + getNextId(jsonObj));

关于javascript - 搜索最大 id 并在 JSON 文件中添加新的最大 id (NodeJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38854230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com