I have authors which can change vary in numbers in list (string array). I have to filter check for each author whether that match to author present in annotation list, and return those values which found true.
Maybe I am doing something caz below code isn't work, it only works when I have single value in author list.
annotList = annotationList
? annotationList
.map((annotData) => annotData)
.filter((val) =>
authors.every(
(author: string) => author == val.CreatedBy
)
)
: [];
Below is sample data for annotationList on which I have mapped.
0:
AnnotationType: 2
BackgroundColor: "#D43F3A"
BorderColor: "Transparent"
ContentType: 2
Created: "2022-05-04T08:05:32.9309207Z"
CreatedBy: "user1"
DocumentReferenceBorderColor: "#27AAE1"
DocumentReferenceHyperlink: ""
DocumentReferencePageNumber: 1
DocumentReferenceRowKey: ""
ETag: {}
FontSize: null
ForeignKey: "12517735231882099159"
IsDeleted: false
IsPrivate: false
LastAccessedTimeStamp: "2022-05-04T08:05:32.9309207Z"
Opacity: 0.5
PageNumber: 1
PartitionKey: "12517602958622267690_84fa763c"
RowKey: "12517506492670690792_c59126b23"
Timestamp: "2022-05-04T08:05:33.3621897+00:00"
Title: "@"
UserRowKey: "12517665550878303852"
[[Prototype]]: Object
1: {AnnotationType: 2, Title: '@', Content: '{"id":"12517506492677435219_8091276e-15d4-4d7e-b5d…e.com","backgroundColor":"#FDFE98","opacity":0.5}', ContentType: 3, UserRowKey: '12517665550878303852_e0e5bad5-9e3e-415e-ae7a-ddcd2a95ee8d', …}
2: {AnnotationType: 2, Title: '@', Content: '{"id":"12...}
.
.
.
I am populating authors list on which annotation list should be filtered from select mui component for multiple values. so if author list have
authors = [user1, user2];
So these many records should be extracted from list.
This authors list depends on how many authors user select, and how many are there to select.
with array some method, you can also find the elements that are present in the list
const elements = annotationList.filter(author => authors.some(authorData =>
{
return authorData === author.CreatedBy
}));