我不想将重复值推入selectedOwners,因此在下面的代码中,如果所有者不存在于selectedOwners数组中,则用户选择所有者,我不想推入该控件,如何检查以避免重复值?

ctrl.js

  var selectedOwners = [];
            $scope.addProcessOwner = function(dataItem){
              var selectedOwner = {
                  fullName: dataItem.fullName,
                  workerKey: dataItem.workerKey
              }
              if(selectedOwners.indexOf(selectedOwner) !== -1) {
                selectedOwners.push(selectedOwner);
               }
              console.log('WORKER DATA',selectedOwners);
            }

最佳答案

您可以使用Array.prototype.some方法


  some()方法测试数组中的某些元素是否通过提供的函数实现的测试。


var isExists = function(e) {
    if (e.fullName == selectedOwner.fullName
        && e.workerKey == selectedOwner.workerKey) {
        return true;
    }
}

if (!selectedOwners.some(isExists)) {
    selectedOwners.push(selectedOwner);
}

10-06 04:48