Проверить наличие элемента в массиве

103
08 января 2021, 23:40

Есть массив

var array = {};

в него добавляю подмассив

array[1] = array{k1: v1, k2: v2}

при повторном добавлении данных в массив, как мне проверить есть ли уже в этом массиве элемент 1 с подмассивом, дабы избежать повторного добавления.

Answer 1

это получается объект (массив) с данными о пользователях. где уникальный ид это ид пользователя а логин и ссылка на аватар это данные подмассива поторые добавляются в этот объект(массив).

Ну если id у пользователя уникальный, то лучше хранить все в объекте. Ключ - id, а значение, это уже объект с данными

Тогда проверка на наличие станет вообще тривиальной
Можно написать даже целый класс для пользователя ( любой сущности )

class Users { 
  data_ = {} 
 
  add(user) { 
    // Если пользователя нет 
    if(!this.data_[user.id]) { 
      this.data_[user.id] = user; 
    } 
  } 
   
  delete(id) { 
    return delete this.data_[id]; 
  } 
   
  // Обновить данные пользователя, который уже есть 
  update(user) { 
    if (this.data_[user.id]) { 
      this.data_[user.id] = user; 
    } 
  } 
   
  // Получить список пользователей 
  getAll() { 
    return Object.values(this.data_); 
  } 
} 
 
const user1 = {login: 'login', id: '1', avatar: 'link'}; 
const user2 = {login: 'login', id: '2', avatar: 'link'}; 
const user3 = {login: 'login', id: '3', avatar: 'link'}; 
const usersDB = new Users(); 
usersDB.add(user1); 
usersDB.add(user2); 
usersDB.add(user3); 
usersDB.add(user1); // здесь ничего не произойдет 
console.log('Get all users'); 
console.log(usersDB.getAll()); 
 
console.log('Update user'); 
usersDB.update({login: 'login1', id: '1', avatar: 'link1'}); 
console.log(usersDB.getAll()); 
 
console.log('Delete user'); 
usersDB.delete(2); 
console.log(usersDB.getAll());

READ ALSO
Сброс нумерации элементов в массиве jquery

Сброс нумерации элементов в массиве jquery

Есть массив нумерация элементов от 20-39Как можно сбросить нумерацию элементов в массиве, чтобы она стала от 0-19?

85
Не работает загрузчик

Не работает загрузчик

Вдруг ни с того ни с сего перестали загружаться картинки в новую заявкуНе работает загрузчик не в админки , не в фронте

129
Как добавить внутри canvas буквы?

Как добавить внутри canvas буквы?

Как сделать, что бы из атрибута data-word брались слова и вставлялись внутри canvas

128
Изменение цвета в QTableView по нажатию кнопки

Изменение цвета в QTableView по нажатию кнопки

Всем приветПодскажите пожалуйста, как изменить цвет в Qt QTableView для текущей позиции в таблице по нажатию на кнопку? Задача такая: Пользователь...

134