javascript - 如何将元素插入数组而不重复它们?

标签 javascript arrays angularjs lodash

我有this issue here recorded on a video以便您更容易理解。正如您所看到的,我从一个数组中选择一些元素,并将这些元素推送到另一个名为 $scope.favoriteLeague = []; 的数组中,以便制作最喜欢的联赛列表,在该视频中我我想多次推送该元素,但我不希望这样,我希望能够仅选择列表中的每个元素一次,并且如果用户尝试选择已位于收藏夹数组中的元素,然后显示一条消息。

我正在使用lodashAngular,这是代码:

$scope.favoriteLeague = []; 

$scope.addToFavorites = function(league) {

   $scope.favoriteLeague.push(league);

};

html

<ion-item ng-repeat="league in favoriteLeague">

    {{league.name}}

</ion-item>

最佳答案

您应该检查它是否不在数组中。 @itcouldevenbeaboat 很接近,但它应该是 === -1 而不是 !== -1

$scope.addToFavorites = function(league) {

    if ($scope.favoriteLeague.indexOf(league) === -1){
        $scope.favoriteLeague.push(league);
    }

};

关于javascript - 如何将元素插入数组而不重复它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28435658/

相关文章:

javascript - 在 Apps Script Web App 中实现一个 slider 。 oninput 事件未触发

javascript - 使用 d3 数据绑定(bind)来实现次要效果?

Python、OpenCV : Increasing image brightness without overflowing UINT8 array

javascript - 尽管注入(inject)了 ui-router,$urlRouterProvider 仍导致错误 - angularjs

angularjs - 使用 css 的 element 来检查 Protractor 中是否存在 element

javascript - 将函数参数作为数据切换属性传递?

javascript - 如何在 React-Native 应用程序中处理对 Firebase 的异步调用?

javascript - 从对象数组递归创建 JSON 树结构

javascript - 数组过滤器为空时返回全部

javascript - 如何限制从键盘中选择的提前输入选项?