Angular JS - 如何捕获转发器中的重复项是不允许的异常

时间:2014-12-31 19:52:23

标签: javascript arrays angularjs

我需要验证我添加到对象数组中的对象不存在于临时对象数组中。

Angula JS throw错误不允许在转发器中重复。但是使用try / catch没有捕获此错误。

是否可以检查此类异常或检查对象数组中是否已存在该对象?

感谢您的帮助。

代码示例:

  $scope.availableSounds = [
            {
                name: "Rain"
            },
            {
                name: "Storm"
            },
            {
                name: "Forest"
            },
        ];        

$scope.selectedSounds = [];

添加项目(选定声音阵列中的对象应该是独一无二的)

$scope.addSoundToSelection = function(index) {
            try {
                var selectedItem = $scope.availableSounds[index];
                $scope.selectedSounds.push(selectedItem);
                var pos = $scope.selectedSounds.map(function(e) { return e.hello; }).indexOf(selectedItem.name);
                console.log(pos);
            } catch(e) {
                $scope.showAlert();
            }
        };

1 个答案:

答案 0 :(得分:3)

indexOf方法怎么样

var myObjectToAdd = {};
var myArray = [ {}, {} ] //some array of objects

if (myArray.indexOf(myObjectToAdd) < 0) {
 myArray.add(myObjectToAdd);
}

或者,您可以使用lodash库的_.find