我需要验证我添加到对象数组中的对象不存在于临时对象数组中。
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();
}
};
答案 0 :(得分:3)
indexOf方法怎么样
var myObjectToAdd = {};
var myArray = [ {}, {} ] //some array of objects
if (myArray.indexOf(myObjectToAdd) < 0) {
myArray.add(myObjectToAdd);
}
或者,您可以使用lodash库的_.find