Javascript 如何将数值输入分类?
我想创建一种优化的方法来对特定标签中的值进行分类 范例 输入:12.2,61,77.7 输出:“差”、“差”、“好” 我创建了一个简单的if,但可能存在一个更好的方法Javascript 如何将数值输入分类?,javascript,range,classification,Javascript,Range,Classification,我想创建一种优化的方法来对特定标签中的值进行分类 范例 输入:12.2,61,77.7 输出:“差”、“差”、“好” 我创建了一个简单的if,但可能存在一个更好的方法 let output = null; if (rating <= 60){ output = 'bad'} if (rating > 60){ output = 'poor'} if (rating > 70){ output = 'good'} if (rating > 90){ output = 'ex
let output = null;
if (rating <= 60){ output = 'bad'}
if (rating > 60){ output = 'poor'}
if (rating > 70){ output = 'good'}
if (rating > 90){ output = 'excellent'}
let output=null;
如果(评级60){输出='poor'}
如果(评级>70){输出='good'}
如果(评级>90){output='excellent'}
一个更好的方法是创造性地使用开关
:
var输出=null;
var rating=parseInt(提示(“评级”);
开关(真){
病例(90级):
输出=‘优秀’;
打破
案例(评级>70):
输出=‘良好’;
打破
案例(评级>60):
产出='差';
打破
}
控制台日志(输出)代码>您可以使用并迭代一组对象来进行评级。优点是一个良好的可维护对象
功能等级(v){
var评级=[{value:60,标签:'bad'},{value:70,标签:'poor'},{value:90,标签:'good'},{value:Infinity,标签:'excellent'}],
标签;
评级。部分(功能(a){
如果(v一种快速的方法,如果你的记忆力好的话
var限制=[60,70,90100],
费率=[“差”、“差”、“好”、“优秀”],
等级=限制。减少((g,c,i,a)=>i?g.concat(数组(c-a[i-1])。填充(速率[i]))
:g.concat(数组(c).填充(速率[0]),[]),
注=[12.2,61,77.7,89.5];
notes.forEach(n=>console.log(grades[Math.round(n)]);
阅读模糊逻辑。有些概念有助于this@Swift模糊逻辑有什么帮助呢?如果你需要一种统一的方法来定义模糊集,有一种叫做隶属函数的东西。不过在你的例子中,看起来你需要严格的“质量”界限级别。对于一个简单的问题来说,解决方案太复杂了。但是谢谢。我发现了这个关于这个主题的搜索。如果您对这个库有一些要求,我很乐意为es6 fuzz的未来发展提供一些想法
ratings = [
{ value: 60, label: 'bad' },
{ value: 70, label: 'poor' },
{ value: 90, label: 'good' },
{ value: Infinity, label: 'excellent' }
]