/ / Перемішування об'єктів у JSON (AngularJS) - json, angularjs, html5, випадковий

Перемішування об'єктів у JSON (AngularJS) - json, angularjs, html5, random

Я хочу, щоб мої запитання відображалися у випадковому порядку. Я це зробив, але це не працює належним чином, іноді він не проходить через усі об'єкти, зупинки і т.д.

 $scope.move = function (direction) {
var position = $scope.allData.indexOf($scope.currentQ);
$scope.currentQ = $scope.allData[position + direction];
};

$http.get("js/json/questions.json").then(function(response){
$scope.allData = response.data;
$scope.currentQ = $scope.allData[Math.floor(Math.random() * response.data.length)];
});

$scope.answerClick = function(index){
$scope.clicks++;

if(index === $scope.currentQ.answer){
$scope.score++;
$scope.rightwrong = "Right";
$(".right-wrong").css("color", "green");
}
else{
$scope.rightwrong = "Wrong";
$(".right-wrong").css("color", "red");
}

if($scope.clicks === 4){
resultService.score = $scope.score;
$location.path("/finish");
}

$scope.move(+1);
};

Ось цілий додаток: http://plnkr.co/edit/wTQHOz

Відповіді:

0 для відповіді № 1

В move методом ви можете вийти за межі діапазону масиву. Зробіть його, якщо ви рухаєтесь перед першим чи після останнього питання:

$scope.currentQ = $scope.allData[(position + direction + $scope.allData.length) % $scope.allData.length];