最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

JSON的NodeJS结构

IT培训 admin 3浏览 0评论

JSON的NodeJS结构

我现在有一个JSON数组结构是这样的:

[{"id": 1, "meeting": "1/3/2015 12:30:00 PM", "name": "John"},
{"id": 1, "meeting": "1/3/2015 13:30:00 PM"}, "name": "John"},
{"id": 2, "meeting": "1/5/2015 7:00:00 AM"}, "name": "Peter"},
{"id": 2, "meeting": "1/5/2015 8:00:00 AM"}, "name": "Peter"}]

我怎样才能改变我的阵列的结构是这样的?

[ {"id": 1, "name": "John", "meeting": [{"Time": "1/3/2015 12:30:00 PM", "Time": "1/3/2015 13:30:00 PM"}]},
{"id": 2, "name": "Peter", "meeting": [{"Time": "1/5/2015 7:00:00 AM", "Time": "1/5/2015 8:00:00 AM"}]}]
回答如下:

您应该使用Array.prototype.reduce

const data = [{"id": 1, "meeting": "1/3/2015 12:30:00 PM", "name": "John"}, {"id": 1, "meeting": "1/3/2015 13:30:00 PM", "name": "John"}, {"id": 2, "meeting": "1/5/2015 7:00:00 AM", "name": "Peter"}, {"id": 2, "meeting": "1/5/2015 8:00:00 AM", "name": "Peter"}];

//I fixed a typo in the above array

const merged = data.reduce((acc, { id, meeting, name }) => {
    if (acc.some(e => e.id == id)) {
        acc.find(e => e.id == id).meeting.push(meeting);
    } else {
        acc.push({ "id": id, "name": name, "meeting": [meeting]});
    }
    return acc;
}, []);

console.log(merged);

JSON的NodeJS结构

我现在有一个JSON数组结构是这样的:

[{"id": 1, "meeting": "1/3/2015 12:30:00 PM", "name": "John"},
{"id": 1, "meeting": "1/3/2015 13:30:00 PM"}, "name": "John"},
{"id": 2, "meeting": "1/5/2015 7:00:00 AM"}, "name": "Peter"},
{"id": 2, "meeting": "1/5/2015 8:00:00 AM"}, "name": "Peter"}]

我怎样才能改变我的阵列的结构是这样的?

[ {"id": 1, "name": "John", "meeting": [{"Time": "1/3/2015 12:30:00 PM", "Time": "1/3/2015 13:30:00 PM"}]},
{"id": 2, "name": "Peter", "meeting": [{"Time": "1/5/2015 7:00:00 AM", "Time": "1/5/2015 8:00:00 AM"}]}]
回答如下:

您应该使用Array.prototype.reduce

const data = [{"id": 1, "meeting": "1/3/2015 12:30:00 PM", "name": "John"}, {"id": 1, "meeting": "1/3/2015 13:30:00 PM", "name": "John"}, {"id": 2, "meeting": "1/5/2015 7:00:00 AM", "name": "Peter"}, {"id": 2, "meeting": "1/5/2015 8:00:00 AM", "name": "Peter"}];

//I fixed a typo in the above array

const merged = data.reduce((acc, { id, meeting, name }) => {
    if (acc.some(e => e.id == id)) {
        acc.find(e => e.id == id).meeting.push(meeting);
    } else {
        acc.push({ "id": id, "name": name, "meeting": [meeting]});
    }
    return acc;
}, []);

console.log(merged);

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论