【发布时间】:2021-01-07 23:21:00
【问题描述】:
我有一个对象数组,比如
const score_card = [
{ "range":"0.6-1.5", "point":"10"},
{ "range":"1.6-2.5", "point":"20"},
{ "range":"2.6-3.5", "point":"30"},
{ "range":"3.6-4.5", "point":"40"},
{ "range":"4.6+", "point":"50"}
]
现在,如果我收到一个数字 1.7,那么我需要找出它落在哪个范围内,所以在我的示例中,它落在 1.6-2.5 之间,相关点数是 20。
由于 score_card 数组一直都是一样的,所以我使用 switch case 如下:
let number = 1.7
switch(number) {
case (number>=0.6 || number<=1.5):
console.log('points : 10')
break;
case (number>=1.6 || number <=2.5):
console.log('points : 20')
break;
case (number >=2.6 || number <=3.5):
console.log('points : 30')
break;
case (number>=3.6 || number<=4.5):
console.log('points : 40')
break;
case (number>=4.6):
console.log('points : 50')
break;
default:
console.log('none')
}
现在的问题是我们在 switch case 中传递的数字(在我们的示例 1.7 中)是数组的一部分,并且这个 switch case 在循环中编写以逐个获取数字。这会使代码更长并且可能更慢对于不同的情况,我必须再做 4 次。 那么任何人都可以帮助我并建议我一种有效处理此问题的方法吗?
【问题讨论】:
标签: javascript node.js