【问题标题】:How to add a new element at end of the JSON array in nodejs如何在nodejs中的JSON数组末尾添加一个新元素
【发布时间】:2019-07-11 11:47:20
【问题描述】:

我需要一些帮助才能在 nodejs 的 JSON 数组末尾添加一个新元素

示例 JSON 数组

[{
  "subject": "physics",
  "student_id": "2569",
  "values": "0.152,0.228,0.218"
}, {
  "subject": "maths",
  "student_id": "1236",
  "values": "0.146,0.22,0.212"
}, {
  "subject": "chemistry",
  "student_id": "4569",
  "values": "0.159,0.234,0.224"
}, {
  "subject": "physics",
  "student_id": "1478",
  "values": "0.16,0.235,0.225"
}]

预期结果应该是

[{
  "subject": "physics",
  "student_id": "2569",
  "values": "0.152,0.228,0.218"
}, {
  "subject": "maths",
  "student_id": "1236",
  "values": "0.146,0.22,0.212"
}, {
  "subject": "chemistry",
  "student_id": "4569",
  "values": "0.159,0.234,0.224"
}, {
  "subject": "physics",
  "student_id": "1478",
  "values": "0.16,0.235,0.225"
}, 
lastSyncTime: 1550467657366]

请给我一个简单的解决方案。

【问题讨论】:

  • 这不是 JSON 数组
  • 你不能将这样的对象添加到数组中。使用 array.push({lastSyncTime:155})
  • 简单三步的简单解决方案: 1.解析JSON,得到一个数组; 2. 将新元素压入数组末尾; 3. 使用更新后的数组生成新的 JSON。您的预期结果不是有效的 JSON。数组不能包含命名属性。

标签: javascript node.js lodash


【解决方案1】:

您可以简单地使用javaScript 完成此操作

var myArray = [{
  "subject": "physics",
  "student_id": "2569",
  "values": "0.152,0.228,0.218"
}, {
  "subject": "maths",
  "student_id": "1236",
  "values": "0.146,0.22,0.212"
}, {
  "subject": "chemistry",
  "student_id": "4569",
  "values": "0.159,0.234,0.224"
}, {
  "subject": "physics",
  "student_id": "1478",
  "values": "0.16,0.235,0.225"
}];

myArray.push({lastSyncTime: 1550467657366});

console.log(myArray);

结果会是

[{
  "subject": "physics",
  "student_id": "2569",
  "values": "0.152,0.228,0.218"
}, {
  "subject": "maths",
  "student_id": "1236",
  "values": "0.146,0.22,0.212"
}, {
  "subject": "chemistry",
  "student_id": "4569",
  "values": "0.159,0.234,0.224"
}, {
  "subject": "physics",
  "student_id": "1478",
  "values": "0.16,0.235,0.225"
}, 
{lastSyncTime: 1550467657366}];

您也可以使用获取最后一项

var lastSyncTime = myArray[myArray.length - 1].lastSyncTime;
console.log(lastSyncTime); // That is: 1550467657366

或者,如果您想使用 lodash 在列表中查找对象,请查看下面的链接

How to use lodash to find and return an object from Array?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-17
    • 2012-12-02
    • 2017-09-18
    • 2011-01-17
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    相关资源
    最近更新 更多