我正在构建一个计算器应用程序,并且卡在我检查用户根据我在服务器上的计划数据集中选择的值的部分。
我使用的四个数据滑块如下所示:
每次用户滑动滑块时,我都会将值发送回我的脚本以进行验证和检查。
现在这里是我正在检查用户输入的值的静态数据集:
plandata.data = [
{
id: 'small',
from: {
cpu: 1,
ram: 1,
hd: 40,
bw: 10
},
to: {
cpu: 2,
ram: 2,
hd: 500,
bw: 500
},
price: {
linux: 3490,
windows: 4190
}
},
{
id: 'medium',
from: {
cpu: 2,
ram: 2,
hd: 40,
bw: 20
},
to: {
cpu: 4,
ram: 4,
hd: 500,
bw: 500
},
price: {
linux: 5600,
windows: 6300
}
},
...three more plans like this
现在我想做的是:
small
,medium
,large
等from
和to
范围之间。我现在第一步陷入困境。这是我的代码:
checkPlaninRange = function(cpuVal, ramVal, hdVal, bwVal) {
_.each(pdata, function(plan){
if (cpuVal >= plan.from.cpu && cpuVal < plan.to.cpu
&& ramVal >= plan.from.ram && ramVal < plan.to.ram
&& hdVal >= plan.from.hd && hdVal < plan.to.hd
&& bwVal >= plan.from.bw && bwVal < plan.to.bw
)
{
console.log(plan.id, 'Plan Found');
} else {
console.log('plan not found');
};
});
};
问题是:我的结果好坏参与
plan not found plan.js:41
medium Plan Found plan.js:39
plan not found plan.js:41
medium Plan Found plan.js:39
plan not found plan.js:41
medium Plan Found plan.js:39
plan not found plan.js:41
medium Plan Found plan.js:39
plan not found
我做错了什么?我似乎无法绕过循环计划数据并获得正确的计划。请帮忙。
答案 0 :(得分:1)
if (cpuVal >= plan.from.cpu && cpuVal <= plan.to.cpu
&& ramVal >= plan.from.ram && ramVal <= plan.to.ram
&& hdVal >= plan.from.hd && hdVal <= plan.to.hd
&& bwVal >= plan.from.bw && bwVal <= plan.to.bw
)
我猜你想要AND而不是OR