Issue
I have an array of object that looks like this:
const tickets =
[
{
ticketId: 'aaa',
authorId: 'abc',
replyCount: 0,
status: 'Open',
threads: [
{
threadId: 'abc',
authorId: 'abc',
direction: 'in',
content: 'blah blah blahh'
},
],
},
{
ticketId: 'bbb',
authorId: 'efg',
replyCount: 0,
status: 'Open',
threads: [
{
threadId: 'efg',
authorId: 'efg',
direction: 'in',
content: 'blah blah blahh'
},
],
},
.......
]
Now I want to access the array item where ticketId
equals aaa
and change it's threads
property.
I have tried doing using tickets['aaa'].threads = [ ... ]
but it throws these errors:
Eslint: Unsafe member access .threads on an 'any' value
TypeScript: Element implicitly has an 'any' type because index expression is not of type 'number'
Solution
Find the index where ticketId
equals "aaa"
tickets[tickets.findIndex(v => v.ticketId === "aaa")].threads = [/* ... */];
With index validation:
const idx = tickets.findIndex(v => v.ticketId === "aaa");
if (idx > -1) tickets[idx].threads = [/* ... */];
Answered By - Undo
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.