检查对象值是否存在于对象的 Javascript 数组中,如果不存在,则将新对象添加到数组中

2022-08-30 00:41:22

如果我有以下对象数组:

[ { id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 2, username: 'ted' } ]

有没有办法遍历数组以检查特定的用户名值是否已经存在,以及它是否不执行任何操作,但是如果它不向具有所述用户名(和新ID)的数组添加新对象?

谢谢!


答案 1

我假设s在这里是独一无二的。有些是检查数组中事物是否存在的一个很好的函数:id

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.some(el => el.username === name);
  if (!found) arr.push({ id, username: name });
  return arr;
}

console.log(add(arr, 'ted'));

答案 2

这个小片段对我有用。

const arrayOfObject = [{ id: 1, name: 'john' }, {id: 2, name: 'max'}];

const checkUsername = obj => obj.name === 'max';

console.log(arrayOfObject.some(checkUsername))

如果你有这样的元素数组,那么我们可以做这样的事情['john','marsh']

const checkUsername = element => element == 'john';
    
console.log(arrayOfObject.some(checkUsername))