If I have the following array of objects:
[ { id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 2, username: 'ted' } ]
Is there a way to loop through the array to check whether a particular username value already exists and if it does do nothing, but if it doesn’t to add a new object to the array with said username (and new ID)?
Thanks!
Advertisement
Answer
I’ve assumed that id
s are meant to be unique here. find
is a great array method for checking the existence of things in arrays:
const arr = [{ id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 3, username: 'ted' }]; function add(arr, name) { const { length } = arr; const id = length + 1; const found = arr.find(el => el.username === name); if (!found) arr.push({ id, username: name }); return arr; } console.log(add(arr, 'ted')); console.log(add(arr, 'daisy'));