How can I get unique values from this input JSON array on field input[i].user
I can write a for loop but wanted to know if there is a shorter way using filter/set etc ? Thanks
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);
Alternative, you could map
to the simplified "user", "userfullname" object then filter
on where the index is the same as the result of findIndex
where "user" is equal (a way to unique for javascript arrays)
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 simpleInput = input.map(({ user, userfullname }) => ({ user, userfullname }));
const filteredInput = simpleInput.filter((user, i, a) => i == a.findIndex(u => u.user == user.user));
console.log(filteredInput)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加