gpt4 book ai didi

javascript - 通过数组检查多个值,应返回一个值

转载 作者:行者123 更新时间:2023-12-03 01:19:43 25 4
gpt4 key购买 nike

如何在所有检查后返回一个值?在此示例中,方法 checkInterval() 被调用四次并覆盖结果。如果 const VALUES 中至少有一个值超出范围 (PRESCRIPTION_RULES),我需要返回 false。

const PRESCRIPTION_RULES = {
interval: {
SPH: [{min: -2, max: 2}],
CYL: [{min: -2, max: 2}],
},
};

class CheckRules {

check() {

const values = [
{name: 'sph_od', value: -2},
{name: 'sph_os', value: -2},
{name: 'cyl_os', value: -5},
{name: 'cyl_od', value: -1},
];

values.map(obj => {
if (obj.name === 'sph_od' || obj.name === 'sph_os') {
this.checkInterval(obj.value, PRESCRIPTION_RULES.interval.SPH);
} else if (obj.name === 'cyl_od' || obj.name === 'cyl_os') {
this.checkInterval(obj.value, PRESCRIPTION_RULES.interval.CYL);
}
});

}

checkInterval(current, packages) {
let result = [];

packages.map(obj => {
if (obj.min <= current && obj.max >= current) {
result.push(true);
}
else {
result.push(false);
}
});

const shouldReturnOneValue = result.every(elem => elem === true);
console.log(shouldReturnOneValue);
}

}

const rules = new CheckRules();
rules.check();

这是我的类(class)的简化版本,我删除了所有不相关的内容。我有很多 PRESCRIPTION_RULES 和 VALUES

链接到沙箱 https://jsbin.com/qoweyow/edit?js,console

最佳答案

假设您希望 check() 在遵守所有规则的情况下返回 bool 值:

使 checkInterval 返回 result.every() 的值:

checkInterval(current, packages) {
// you can use filter here instead of map to filter eleements, then every
return packages.filter(obj => {
return obj.min <= current && obj.max >= current
}).every(elem => elem === true);
}

在check()中,将map改为every并返回结果

return values.every(obj => {
if (obj.name === 'sph_od' || obj.name === 'sph_os') {
return this.checkInterval(obj.value, PRESCRIPTION_RULES.interval.SPH);
} else if (obj.name === 'cyl_od' || obj.name === 'cyl_os') {
return this.checkInterval(obj.value, PRESCRIPTION_RULES.interval.CYL);
}
});

关于javascript - 通过数组检查多个值,应返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51811989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com