簡體   English   中英

AngularJS:從JSON文件中獲取三個隨機元素

[英]AngularJS: Getting three random elements from a JSON file

我一直在使用AngularJS。 我有一個JSON文件,每個對象都需要顯示在新的部分中。 JSON文件中有100個對象,我需要隨機選擇三個。 我該如何實現?

控制器:

 myApp.controller('DetailsController', ['$scope', '$http','$routeParams' ,function($scope, $http, $routeParams) {
  $http.get('js/JOSCO.json').success(function(data) {
  $scope.questions = data; // Array of 100 objs
  console.log($scope.questions);
  $scope.whichItem = $routeParams.itemId; // I want to assign 3 random numbers to whichItem

 if($routeParams.itemId > 0){
    $scope.prevItem = Number($routeParams.itemId) - 1;
  }
  else{
    $scope.prevItem = $scope.questions.length - 1;
  }

  if($routeParams.itemId < $scope.questions.length-1){
    $scope.nextItem = Number($routeParams.itemId) + 1;
  }
  else{
    $scope.nextItem = 0;
  }

  });
}]);

目前它正在吸收所有100個物品...

要訪問數組中的隨機項,可以使用。

$scope.randomItem = data[Math.floor(Math.random() * data.length)];

如果重復三遍,則會得到三個隨機元素。 您仍然可以創建一個函數來使代碼干燥。

function getRandomItem(items) {

  return items[Math.floor(Math.random() * items.length)];
}

如果多次調用同一項,則上述解決方案可能會多次獲得相同的項。 您可以使用splice()從原始數組中刪除該項。

function getRandomItem(items) {
    var randomIndex = Math.floor(Math.random() * items.length);
    var item = items.splice(randomIndex, 1);
    return item[0];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM