查找值和设置状态之间的范围
Finding Range Between Values and Setting States
我目前正在创建一个使用双耳Beats/在每只耳朵播放不同频率的应用程序。下面是我正在处理的:
var frequency = {
"Gamma": [30, 50],
"Beta": [14, 30],
"Alpha": [8, 14],
"Theta": [4, 8],
"Delta": [0.1, 4]
};
Binaural Beats的工作方式是左耳和右耳播放的频率之间的差异应该等于数组中的值。例如,一个伽马波双耳节拍的频率之间的差异是30 - 50,如对象/数组所示。
我目前使用滑块和文本框来设置播放的频率。我该如何通过检查频率之间的值来动态设置状态(Gamma, Beta, Alpha等)而不显得笨拙?我试过在Lodash中使用_inRange,但似乎仍然无法弄清楚。
任何帮助都将非常感激,谢谢!
如果我正确理解了你的逻辑,你需要找到左和右之间的差异是否在一个范围内:
var frequency = {
"Gamma": [30, 50],
"Beta": [14, 30],
"Alpha": [8, 14],
"Theta": [4, 8],
"Delta": [0.1, 4]
};
var freqs = ['Delta', 'Theta', 'Alpha', 'Beta', 'Gamma']; // array of frequencies from the lowset to the highest range
function findFrequency(left, right) {
return _.find(freqs, function(value) { // find the frequnecy
var range = frequency[value]; // take the range from the frequency array
var diff = Math.abs(left - right); // get the diff btween right to left
return _.inRange(diff, range[0], range[1]); // find if the diff is in the range
});
}
var result = findFrequency(3, 32);
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.0/lodash.min.js"></script>
相关文章:
- cloudSearch:范围从0到某个值之间的距离
- 在两个浏览器选项卡之间共享变量范围
- 在Jquery或Javascript中获取两个范围或日期之间的通信周数
- 节点模块对象范围:在所有函数之间共享一个对象
- 离子范围值未更新 在$state之间导航
- 当间隔之间的范围高时,在高图表中显示y轴上的整个值
- 如何使用javascript将文本框中的值限制为1-999之间的值范围
- 函数之间的Javascript变量范围问题
- 命名空间和词法范围之间的关系是什么
- AngularJS 1.0.x 和 1.2.x 之间的范围差异
- 正则表达式用于验证两个范围之间的数字
- 模式匹配检查范围之间的邮政编码
- 用于筛选日期范围之间的数据的沙发基视图
- jQuery 自定义事件在全局范围内工作,但在对象之间不起作用
- 正则表达式用于在 JavaScript 中查找任何两个数值(范围)之间的所有数字
- 如何显示/隐藏范围,具体取决于本地时间是否等于“开始日期”和“结束日期”Jquery之间
- 在指令之间共享范围 - 缺少$http
- Google 应用脚本:返回 2 个两个范围之间唯一值的函数
- Javascript:在数字范围之间转换,保持正确的比例
- 如何在具有范围的集合之间快速分配值