我有兩個數組。我可以通過單擊searchWords中的單詞來推送和拼接,這會在當前的詞表中添加或刪除單詞。比較兩個數組和concat沒有重複
我想要的是一個按鈕,可將所有searchWords轉移到currentWordlist,而不會覆蓋實際在currentWordlist上的單詞。
我想出了這個代碼:
$scope.addAll = function() {
var searchWords = [];
var currentWords = [];
// safes all searchwords to the array
for (var i = 0; i < $scope.searchWords.length; i++) {
searchWords.push($scope.searchWords[i]);
}
// safes all currentwords to the array
for (var j = 0; j < $scope.currentWordlist.length; j++) {
currentWords.push($scope.currentWordlist[j]);
}
console.log("searchWords " + searchWords.length);
console.log("currentWords " + currentWords.length);
angular.forEach(searchWords, function(value1, key1) {
angular.forEach(currentWords, function(value2, key2) {
if (value1._id !== value2._id) {
$scope.currentWordlist.push(value1);
}
});
});
};
我經過兩個陣列的和安全的他們,這樣我可以使用裏面我的兩個angular.forEach
,以檢查是否有重複的陣列。如果我不推送到當前詞表。但它不起作用。我得到一個[ngRepeat:dupes]
錯誤,但我不能使用$ index索引,因爲否則從列表中刪除將刪除錯誤的單詞。我認爲我在這裏做了嚴重錯誤的事情,但是我無法找出到目前爲止(幾小時的試驗和錯誤:0)
考慮使用的indexOf – MMK