@KOPC1886

Как проверить существование элемента в массиве?

Всем привет!

Не получается сделать через indexOf.

Вот код

$scope.selectedEditor = function(user)
            {
                user.originalObject.id = user.originalObject.id * 1;
                if($scope.selectedEditors.indexOf(user.originalObject.id) === -1)
                {
                    $scope.selectedEditors.push({
                        id: user.originalObject.id,
                        label: user.originalObject.label
                    });
                }
                console.log($scope.selectedEditors);
            }


<div id="selectedEditors">
                                <div class="selected_user" ng-repeat="editor in selectedCategory.editors">
                                    <span class="user">{{editor.label}}</span>
                                    <span class="delete_chosen glyphicon glyphicon-remove" ng-click="deleteEditor($index)" title="Удалить"></span>
                                </div>
                            </div>


При добавлении одного и того же пользователя, в массив вновь добавляется этот юзер. А мне нужно сделать проверку, чтобы юзеры не повторялись. Если есть такой в массиве уже, то не добавлять. А если нет, то добавить.
  • Вопрос задан
  • 3553 просмотра
Пригласить эксперта
Ответы на вопрос 1
KwI
@KwI
Frontend developer
user у вас - объект, который не является примитивом, и с ним indexOf не сработает.
Варианты:
1) Держать параллельно массив с id юзеров и проверять наличие id в нем
2) Проходить по массиву и каждый элемент сравнивать с новым по id.
или выдумать еще что-нибудь
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы