Skip to content
Advertisement

Check if object value exists within a Javascript array of objects and if not add a new object to array

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 ids 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'));
User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement