gpt4 book ai didi

javascript - 如何从复杂的对象数组中获取唯一的对象数组?

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

如何从字段 input[i].user 上的输入 JSON 数组获取唯一值

我可以写一个 for 循环,但想知道使用过滤器/设置等是否有更短的方法?谢谢

const input = [{
"id": 133557,
"user": "bcasey1",
"userfullname": "Bertha Casey",
"commentTypeId": 2,
"annotationPrimaryId": 141614,
"comment": "Red color on ravioli is not true, fix",
"deleted": false,
"historyno": "133557-0",
"timestamp": "Tue Apr 24 10:40:42 CDT 2018",
"type": "rectangle"
}, {
"id": 134038,
"user": "admin",
"userfullname": "Administrator Administrator",
"commentTypeId": 1,
"annotationPrimaryId": 142286,
"comment": "test123",
"deleted": false,
"historyno": "134038-0",
"timestamp": "Mon Jul 8 22:15:18 CDT 2019",
"type": "rectangle"
}, {
"id": 134039,
"user": "admin",
"userfullname": "Administrator Administrator",
"commentTypeId": 2,
"annotationPrimaryId": 142287,
"comment": "test234",
"deleted": false,
"historyno": "134039-0",
"timestamp": "Mon Jul 8 22:15:35 CDT 2019",
"type": "rectangle"
}, {
"id": 134112,
"user": "admin",
"userfullname": "Administrator Administrator",
"commentTypeId": 3,
"annotationPrimaryId": 142361,
"comment": "sadasdasd",
"deleted": false,
"historyno": "134112-0",
"timestamp": "Wed Jul 17 13:03:55 CDT 2019",
"type": "rectangle"
}, {
"id": 134112,
"user": "admin",
"userfullname": "Administrator Administrator",
"commentTypeId": 0,
"annotationPrimaryId": 142370,
"comment": "sadasdasd s",
"deleted": false,
"historyno": "134112-1",
"timestamp": "Wed Jul 17 15:09:48 CDT 2019",
"type": "rectangle"
}, {
"id": 134113,
"user": "admin",
"userfullname": "Administrator Administrator",
"commentTypeId": 4,
"annotationPrimaryId": 142362,
"comment": "sadasdasd edited #4",
"deleted": false,
"historyno": "134113-0",
"timestamp": "Wed Jul 17 13:16:39 CDT 2019",
"type": "rectangle"
}, {
"id": 134114,
"user": "admin",
"userfullname": "Administrator Administrator",
"commentTypeId": 0,
"annotationPrimaryId": 142363,
"comment": "sadasdasd edited #5",
"deleted": false,
"historyno": "134114-0",
"timestamp": "Wed Jul 17 13:20:06 CDT 2019",
"type": "rectangle"
}, {
"id": 134114,
"user": "admin",
"userfullname": "Administrator Administrator",
"commentTypeId": 0,
"annotationPrimaryId": 142365,
"comment": "sadasdasd edited #6",
"deleted": false,
"historyno": "134114-1",
"timestamp": "Wed Jul 17 13:36:53 CDT 2019",
"type": "rectangle"
}, {
"id": 134114,
"user": "admin",
"userfullname": "Administrator Administrator",
"commentTypeId": 0,
"annotationPrimaryId": 142366,
"comment": "sadasdasd edited #7",
"deleted": false,
"historyno": "134114-2",
"timestamp": "Wed Jul 17 13:46:36 CDT 2019",
"type": "rectangle"
}, {
"id": 134115,
"user": "admin",
"userfullname": "Administrator Administrator",
"commentTypeId": 2,
"annotationPrimaryId": 142367,
"comment": "eertet",
"deleted": false,
"historyno": "134115-0",
"timestamp": "Wed Jul 17 14:50:03 CDT 2019",
"type": "rectangle"
}, {
"id": 134118,
"user": "admin",
"userfullname": "Administrator Administrator",
"commentTypeId": 3,
"annotationPrimaryId": 142371,
"comment": "a",
"deleted": false,
"historyno": "134118-0",
"timestamp": "Wed Jul 17 15:09:58 CDT 2019",
"type": "rectangle"
}];

const expectedOutput = [{
"user": "bcasey1",
"userfullname": "Bertha Casey"
}, {
"user": "admin",
"userfullname": "Administrator Administrator",
}];

console.log('expectedOutput', expectedOutput);

最佳答案

使用 reduce()Object.assign()

const input = [{"id":133557,"user":"bcasey1","userfullname":"Bertha Casey","commentTypeId":2,"annotationPrimaryId":141614,"comment":"Red color on ravioli is not true, fix","deleted":false,"historyno":"133557-0","timestamp":"Tue Apr 24 10:40:42 CDT 2018","type":"rectangle"},{"id":134038,"user":"admin","userfullname":"Administrator Administrator","commentTypeId":1,"annotationPrimaryId":142286,"comment":"test123","deleted":false,"historyno":"134038-0","timestamp":"Mon Jul 8 22:15:18 CDT 2019","type":"rectangle"},{"id":134039,"user":"admin","userfullname":"Administrator Administrator","commentTypeId":2,"annotationPrimaryId":142287,"comment":"test234","deleted":false,"historyno":"134039-0","timestamp":"Mon Jul 8 22:15:35 CDT 2019","type":"rectangle"},{"id":134112,"user":"admin","userfullname":"Administrator Administrator","commentTypeId":3,"annotationPrimaryId":142361,"comment":"sadasdasd","deleted":false,"historyno":"134112-0","timestamp":"Wed Jul 17 13:03:55 CDT 2019","type":"rectangle"},{"id":134112,"user":"admin","userfullname":"Administrator Administrator","commentTypeId":0,"annotationPrimaryId":142370,"comment":"sadasdasd s","deleted":false,"historyno":"134112-1","timestamp":"Wed Jul 17 15:09:48 CDT 2019","type":"rectangle"},{"id":134113,"user":"admin","userfullname":"Administrator Administrator","commentTypeId":4,"annotationPrimaryId":142362,"comment":"sadasdasd edited #4","deleted":false,"historyno":"134113-0","timestamp":"Wed Jul 17 13:16:39 CDT 2019","type":"rectangle"},{"id":134114,"user":"admin","userfullname":"Administrator Administrator","commentTypeId":0,"annotationPrimaryId":142363,"comment":"sadasdasd edited #5","deleted":false,"historyno":"134114-0","timestamp":"Wed Jul 17 13:20:06 CDT 2019","type":"rectangle"},{"id":134114,"user":"admin","userfullname":"Administrator Administrator","commentTypeId":0,"annotationPrimaryId":142365,"comment":"sadasdasd edited #6","deleted":false,"historyno":"134114-1","timestamp":"Wed Jul 17 13:36:53 CDT 2019","type":"rectangle"},{"id":134114,"user":"admin","userfullname":"Administrator Administrator","commentTypeId":0,"annotationPrimaryId":142366,"comment":"sadasdasd edited #7","deleted":false,"historyno":"134114-2","timestamp":"Wed Jul 17 13:46:36 CDT 2019","type":"rectangle"},{"id":134115,"user":"admin","userfullname":"Administrator Administrator","commentTypeId":2,"annotationPrimaryId":142367,"comment":"eertet","deleted":false,"historyno":"134115-0","timestamp":"Wed Jul 17 14:50:03 CDT 2019","type":"rectangle"},{"id":134118,"user":"admin","userfullname":"Administrator Administrator","commentTypeId":3,"annotationPrimaryId":142371,"comment":"a","deleted":false,"historyno":"134118-0","timestamp":"Wed Jul 17 15:09:58 CDT 2019","type":"rectangle"}];

const expectedOutput = input.reduce((a, o) => Object.assign(a, {
[o.user]: {
user: o.user,
userfullname: o.userfullname
}
}), {});

console.log('expectedOutput', Object.values(expectedOutput));

关于javascript - 如何从复杂的对象数组中获取唯一的对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57097662/

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