将以下随机代码重构为可重用方法的最佳方法是什么?我想将此部分放入可重复使用的方法==> $scope.randTarotImg = $scope.tarotImg[Math.floor(Math.random() * $scope.tarotImg.length)];
我尝试了以下操作并且无法正常工作:
function randTarotImg(){
$scope.randTarotImg = $scope.tarotImg[Math.floor(Math.random() * $scope.tarotImg.length)];
}
$scope.onClick = function() {
randTarotImg();
};
这是相关的代码块:
.controller('TarotCtrl', function ($scope) {
$scope.tarotImg = [];
for (var i=1;i<=6;i++) {
$scope.tarotImg.push(i);
}
$scope.randTarotImg = $scope.tarotImg[Math.floor(Math.random() * $scope.tarotImg.length)];
$scope.onClick = function() {
$scope.randTarotImg = $scope.tarotImg[Math.floor(Math.random() * $scope.tarotImg.length)];
};
})
答案 0 :(得分:1)
var arr = [1,2,3,4,5,6,7,8];
function getRandomElement(arr) {
return arr[Math.floor(Math.random()*arr.length)];
}
console.log(getRandomElement(arr));
在你的情况下:
.controller('TarotCtrl', function($scope) {
$scope.tarotImg = [];
for (var i = 1; i <= 6; i++) {
$scope.tarotImg.push(i);
}
function getRandomElement(arr) {
return arr[Math.floor(Math.random()*arr.length)];
}
$scope.randTarotImg = getRandomElement($scope.tarotImg);
$scope.onClick = function() {
$scope.randTarotImg = getRandomElement($scope.tarotImg);
};
});