Я отсортировал данные, поступающие с сервера. Он вызывается из бесконечного свитка.Как проверить повторение данных, поступающих с сервера в цикле?
Я хочу передать данные, которые не являются повторением для клиентского массива. Если начинается дублирование, я хочу вернуться и завершить бесконечный прокрутки.
$scope.collections = [];
$scope.isBusy = false;
$scope.queryObject = {
size: 12,
sorter: 'timestamp',
sort: {
timestamp: -1
},
skip: 0
}
$scope.loadMore = function() {
if ($scope.isBusy == true) {
return;
}
$scope.isBusy = true;
Collect.all($scope.queryObject).then(function(res) {
for (var i = 0; i < res.data.length; i++) {
if ($scope.collections.length && res.data) {
for (var j = res.data.length - 1; j >= 0; j--) {
if ($scope.collections[0]._id == res.data[j]._id) {
console.log('match', res.data[j])
return;
}
}
$scope.collections.push(res.data[i])
}
else{
$scope.collections.push(res.data[i])
}
}
$scope.queryObject.skip += 12;
$scope.isBusy = false;
});
};
Моя попытка здесь, чтобы проверить res.data в обратном порядке от первого индекса массива коллекций. Если есть повторение, чтобы затем завершить бесконечную прокрутку/loadMore().
Я продолжаю получать res.data._id не определен, но если я удалю его и просто проведу коллекции [0] vs res.data [j], он немедленно отобразит совпадение, а в console.log отобразится res.data [j] с определенным ._id.
Я уверен, что там что-то очень простое, я здесь отсутствует.
все еще получат повторы. Я думаю, что моя первоначальная логика ошибочна. – NoobSter
Это должно сработать. Пожалуйста, предоставьте скрипку. – lintu