[英]I have an array of objects. Each object contains max and min key value pairs. How do I find the object that contains a predefined value?
我有一系列看起来像这样的保险费率
const insuranceRate = [
{
"min_value": 1,
"max_value": 25000,
"add": 328
}, {
"min_value": 25001,
"max_value": 25500,
"add": 331
}, {
"min_value": 25501,
"max_value": 26000,
"add": 335
}, {
"min_value": 26001,
"max_value": 26500,
"add": 338
}]
假设我以 25,900 美元的价格购买了一辆车。 如何找到合适的 object 并在我的保险费用中增加 335 美元?
这很简单,通过每个元素都有一个 for 循环 go 并检查你的值是否在最小值和最大值之间,function 看起来像这样:
function F(value){
for( i=0;i<insuranceRate.length;i++){
if ( value >= insuranceRate[i].min_value && value <= insuranceRate[i].max_value){
return insuranceRate[i];
}
}
return -1;
}
它返回范围内的元素,然后你可以使用它来获取你的添加值,如果你的值不在范围之间,它会返回 -1
如果您想要价格最低的,我会选择 go :
var valid_rates = [];
insuranceRate.forEach((item, index)=>{
if (price >= item.min_value && price <= item.max_value) {
valid_rates.push(item.add) ;
}
}) ;
// Lowest price
Math.min(valid_rates) ;
循环遍历数组并检查您的汽车成本是否在范围内,如果是 - 将其添加到保险成本中 - 在此示例中,我将其初始化为 0:
var my_car = 25900;
var insuranceCost = 0;
for (var i=0; i<insuranceRate.length; i++) {
if (my_car >= insuranceRate[i].min_value &&
my_car <= insuranceRate[i].max_value) {
insuranceCost += insuranceRate[i].add;
}
}
console.log(insuranceCost); //335
给你 go
const insuranceRate = [
{
"min_value": 1,
"max_value": 25000,
"add": 328
}, {
"min_value": 25001,
"max_value": 25500,
"add": 331
}, {
"min_value": 25501,
"max_value": 26000,
"add": 335
}, {
"min_value": 26001,
"max_value": 26500,
"add": 338
}];
var price=25900;
var filter=insuranceRate.filter(i=>price >= i.min_value && price <=
i.max_value);
console.log("Result:",filter);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.