Javascript 重复一个函数调用7次,然后使用angularjs用返回的值填充标签
我想运行一个函数7次,然后在单击按钮时将返回的值放入7个标签中。这是我到目前为止的基本情况Javascript 重复一个函数调用7次,然后使用angularjs用返回的值填充标签,javascript,html,angularjs,twitter-bootstrap,Javascript,Html,Angularjs,Twitter Bootstrap,我想运行一个函数7次,然后在单击按钮时将返回的值放入7个标签中。这是我到目前为止的基本情况 <button class="btn btn-danger btn-sm" ng-click="getRandom()">Roll</button> <span class="label label-info">1: </span> <span class="label label-info">2: </span> $scope
<button class="btn btn-danger btn-sm" ng-click="getRandom()">Roll</button>
<span class="label label-info">1: </span>
<span class="label label-info">2: </span>
$scope.getRandom = function(){
var roll1 = Math.floor((Math.random()*(6 - 1))+1);
var roll2 = Math.floor((Math.random()*(6 - 1))+1);
var roll3 = Math.floor((Math.random()*(6 - 1))+1);
var roll4 = Math.floor((Math.random()*(6 - 1))+1);
var all = [roll1, roll2, roll3, roll4]
all.sort(function(a, b){return a-b});
var total = all[0] + all [1] + all[2];
return total;
};
滚动
1:
2:
$scope.getRandom=function(){
var roll1=Math.floor((Math.random()*(6-1))+1);
var roll2=Math.floor((Math.random()*(6-1))+1);
var roll3=Math.floor((Math.random()*(6-1))+1);
var roll4=Math.floor((Math.random()*(6-1))+1);
var all=[roll1,roll2,roll3,roll4]
sort(函数(a,b){返回a-b});
var总计=全部[0]+全部[1]+全部[2];
返回总数;
};
我曾考虑过使用ngRepeat调用函数7次,或者只是在函数中加入一个循环来返回所有7个值,但我不太确定如何实现这一点,或者我应该做什么。您的思路是正确的。但是不要反复使用同一个函数,而是尝试将骰子抽象为它自己的函数。这样,您就可以在这里的第二个代码块中重用它,在这里循环,掷骰子7次并将其推入数组 然后,使用.reduce()将所有值一起添加到数组中(请参见)
var all=[];
var=function(){
返回Math.floor((Math.random()*(6-1))+1);
}
对于(i=0;i<7;i++){
var val=diceRoll();
所有。推(val);
}
/*编辑:下面,我想你不想要这个,对不起,已经很晚了*/
all.reduce(函数(上一个、当前、索引、数组){
返回上一个+当前;
});
最终编辑:
好吧,既然你问了,我认为这应该是一个角度特定的方法——但我在这个领域的知识有点贫乏,所以其他人可能会告诉我一个更有效或“角度”的方法
因此,相反,将生成的对象数组定义为附加到$scope,并将掷骰子生成的值定义为附加到JSON对象的键“value”——然后使用此处找到的awesome对生成的数组进行排序,并使用ng repeat渲染数组
var-app=angular.module(“myApp”,[]);
app.controller(“myController”、[“$scope”、函数($scope){
$scope.all=[];
var=function(){
返回Math.floor((Math.random()*(6-1))+1);
}
对于(i=0;i<7;i++){
var val=diceRoll();
$scope.all.push({“value”:val});
}
功能排序结果(道具、asc){
$scope.all=$scope.all.sort(函数(a,b){
如果(asc)返回(a[prop]>b[prop]);
否则返回(b[prop]>a[prop]);
});
}
排序结果(“值”,真);
}]);
标记:
<div ng-app="myApp">
<table ng-controller="myController">
<tr ng-repeat="a in all">
<td>{{a.value}}</td>
</tr>
</table>
</div>
{{a.value}}
@beefwipe!你回来了!这个问题很有趣。让我想做更多的角度!
var app = angular.module("myApp", []);
app.controller("myController", ["$scope", function($scope){
$scope.all = [];
var diceRoll = function() {
return Math.floor((Math.random()*(6 - 1))+1);
}
for (i = 0; i < 7; i++) {
var val = diceRoll();
$scope.all.push({"value":val});
}
function sortResults(prop, asc) {
$scope.all = $scope.all.sort(function(a, b) {
if (asc) return (a[prop] > b[prop]);
else return (b[prop] > a[prop]);
});
}
sortResults('value', true);
}]);
<div ng-app="myApp">
<table ng-controller="myController">
<tr ng-repeat="a in all">
<td>{{a.value}}</td>
</tr>
</table>
</div>