繁体   English   中英

找到值之间匹配的最简单方法是什么

[英]what is the easiest way to finding a match between values

我试图找到两个对象值之间的matching value值。 我可以每次迭代数组来获取它。

但我正在寻找一些最简单的方法......任何人都能帮助我吗?

这是我要找的:

let values = [
  {
    "handlingFee": "0.65",
    "min": "0",
    "max": "50000"
  },
  {
    "handlingFee": "0.60",
    "min": "50000",
    "max": "150000"
  },
  {
    "handlingFee": "0.55",
    "min": "150000",
    "max": "999999999"
  }
];

var findHandlingFee = function(){
    return values[0].handlingFee;
}

findHandlingFee(3000); //handlingFee": "0.65
findHandlingFee(5010); //handlingFee": "0.60"
findHandlingFee(300000); //"handlingFee": "0.55"

您可以使用find方法接受回调函数作为参数。

 let values = [ { "handlingFee": "0.65", "min": "0", "max": "50000" }, { "handlingFee": "0.60", "min": "50000", "max": "150000" }, { "handlingFee": "0.55", "min": "150000", "max": "999999999" } ]; var findHandlingFee = function(value){ return values.find(function(item){ return item.min <= value && item.max >= value; }).handlingFee; } console.log(findHandlingFee(3000)); //handlingFee": "0.65 console.log(findHandlingFee(50010)); //handlingFee": "0.60" console.log(findHandlingFee(300000)); 

您可以使用array#filter方法。它将返回一个数组,但可以自定义返回条件

 let values = [{ "handlingFee": "0.65", "min": "0", "max": "50000" }, { "handlingFee": "0.60", "min": "50000", "max": "150000" }, { "handlingFee": "0.55", "min": "150000", "max": "999999999" } ]; function findHandlingFee(val) { return values.filter(function(item) { // return that object where the val is between max and min value return +item.min <= val && +item.max >= val; }) } //[0] since filter return an array,getting only object in 0 index console.log(findHandlingFee(3000)[0].handlingFee); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM