范围输入值检查(AngularJS)
range input value check (AngularJS)
所以我的页面上有一个范围输入控件(我使用的是angularJS)。我已经将步骤设置为1,最大值设置为10,如下所示:
<input type="range" step="1" max="10" ng-model="question.score" ng-change="controller.arrangeFilters()" />
现在,它正在检查的模型可以有任意数量的值,最多可达10。例如:
var first = [3.333, 6.666, 10],
second = [2, 4, 6, 8, 10],
third = [1.666, 3.332, 4.998, 6.664, 8.330, 9.996];
因此,当滑块被更改时,我需要它检查值,并找到它最接近数组中的哪个数字。对于第一个数组,如果范围值为1,则最接近3.33。但你也可以选择4,对于第一个数组,它仍然最接近3.33。问题是第二个数组,如果用户选择3,则2和4之间的距离相同。
所以,我的问题是,有没有一个函数可以检查2个数字之间的数字,并计算出它最接近哪个?如果可能的话,我希望它不返回2个结果,这样它就会在第二个数组上选择2或4(类似舍入)。
我希望这是有道理的。
您可以使用reduce
尝试类似的操作
var second = [2, 4, 6, 8, 10],
userInput = 3;
var closestInt = second.reduce(function (prev, curr) {
return (Math.abs(curr - userInput) < Math.abs(prev - userInput) ? curr : prev);
});
alert(closestInt); //Output: 2
相关文章:
- angularJs检查是否输入
- AngularJS-检查ng重复中的空项
- AngularJs 检查是否未定义和空的最佳实践
- AngularJS-检查我的资源工厂的实现
- Angularjs检查范围内的所有内容
- Angularjs-检查我是否输入并切换加载程序图标
- AngularJS - 检查文件夹是否存在
- AngularJS检查下载的json是否在工作副本之间有差异
- AngularJS - 检查子数组是否包含某些内容
- AngularJS检查用户是否在选项卡中
- AngularJS:检查模型值是否已更改
- AngularJS检查指令中是否存在函数
- 如何使用angularjs检查所选日期和时间是否小于当前日期或大于当前日期和时间
- AngularJS:检查对象中是否存在键/值,并构造一个对象数组
- 如何使用AngularJS检查日期是否早于2014年2月29日
- Angularjs检查是否有2个promise返回
- Angularjs检查密码的指令已经重复,不能工作
- AngularJs - 检查数组对象中是否存在值
- AngularJS检查image是否为404,并获取image src的动态URL
- AngularJS检查promise是否为空