我有一個動態數組。值來自函數的方法push,我想能夠檢查一個數組是否已經具有相同字母的元素「X」,所以我想刪除這個元素,然後推新元素。我怎樣才能做到這一點? 這是plunker我的代碼從數組中查找並刪除第一個字母的元素
代碼
$scope.selectedCat = [];
$scope.selectedCl = [];
$scope.updateCategory = function (categoryId) {
if ($scope.selectedCat.indexOf(categoryId) > -1) {
$scope.selectedCat.splice($scope.selectedCat.indexOf(categoryId), 1);
} else {
$scope.selectedCat.push(categoryId);
}
$scope.queryCategory = 'categoryId=in=(' + $scope.selectedCat + ")"
// console.log($scope.queryCategory)
//Optional, to reload on change.
$scope.requestSelected ($scope.queryCategory)
};
$scope.updateClass = function (classId) {
if ($scope.selectedCl.indexOf(classId) > -1) {
$scope.selectedCl.splice($scope.selectedCl.indexOf(classId), 1);
} else {
$scope.selectedCl.push(classId);
}
$scope.queryClass = 'eventClassId=in=(' + $scope.selectedCl + ")"
// console.log($scope.queryClass)
//Optional, to reload on change.
$scope.requestSelected ($scope.queryClass)
};
$scope.filter = []
var string;
$scope.requestSelected = function (param){
if($scope.filter already has an elem with the same letters as param){
// delete this elem then
$scope.filter.push(param)
} else {
$scope.filter.push(param)
}
// final result
string = $scope.filter.join(";")
console.log(string)
}
修訂 的幫助@Anton,我終於完成了邏輯創建正確的請求。這工作plunker。也許這將是爲別人有用
是否要檢查兩個元素是完全匹配,或者如果一個元素包含在另一個內?請澄清。 –
將任何問題簡化成最重要的部分通常都是有用的。看起來代碼中有很多事情要做,但並不是所有的事情都需要我們理解這個問題。如果你可以編寫一些新的代碼,那麼它將使調試更容易,並且讓其他人瞭解所涉及的問題。 – Whothehellisthat
@NeilA。完全在示例中,我想檢查$ scope.filter是否已經有一個元素'categoryId'或''eventClassId'與param匹配,並將其刪除,然後將新的參數添加到$ scope.filter array – antonyboom