我有一组单选按钮,当选择一个单选按钮时,该元素将推入对象。

然后,我需要获取对象中元素的值,然后将它们推入数组(如果它们尚未包含在数组中)。

我的问题是,使用此函数在每个值的数组中不断出现重复项或重复项,因为我没有正确检查它们是否存在。

如何检查元素是否已存在于我的数组中,然后将其排除在外?

      _this.selected = {};
      _this.selectedArray = [];

      //loop through the object
      angular.forEach(_this.selected, function ( item ){

        //if it is not the first time the array is getting data loop through the array
        if(_this.selectedArray.length > 0) {
          _this.selectedArray.forEach(function (node){

            //check to see if the item already exists-- this is where it is failing
            //and running the loop too many times
            if(node.id !== item.id){
              _this.selectedArray.push(item);
            }
          });
        } else {
          _this.selectedArray.push(share);
        }
      });

最佳答案

您可以使用其他哈希值检查是否已将项目添加到数组。

  _this.selected = {};
  _this.selectedArray = [];
  _this.selectedHash = {};

  //loop through the object
  angular.forEach(_this.selected, function ( item ){
      if(_this.selectedHash[item.id]) { return; }

      _this.selectedArray.push(item);
      _this.selectedHash[item.id] = 1;
  });

10-07 16:28
查看更多