Tengo este objeto JS (los datos serán diferentes, es solo por ejemplo)
{10: 0, 30: 2.5, 365: 15, 730: 25, 1095: 35}La clave es Días y el valor es porcentaje. Ahora, si la entrada es entre 0 y 10 días, el porcentaje será 0, si entre 11 y 30 días, el porcentaje será 2.5 si entre 31 y 365 días, el porcentaje será 15 si 1100 días, entonces 35
aquí está mi código
days - > input obj_data - object jQuery.each(obj_data, function(key, val) { if( days <= key ){ console.log(val); return false; } }); return trueaquí cómo obtener valor si los días son mayores que 1095
Al agregar un valor que es más alto que cualquier otra cosa por lo que es posible, tiene un valor que puede verificar. Si se devuelve ese valor, obtenga el valor "más grande"/"último" de los valores proporcionados.
En el ejemplo a continuación, uso concat para agregar el entero seguro más grande a la matriz, por lo que la función de comparación sigue ejecutándose.
Si se devuelve ese valor, sabemos que no tuvimos una coincidencia, por lo que obtenemos el último valor del objeto proporcionado.
let data = {10: 0, 30: 2.5, 365: 15, 730: 25, 1095: 35} let days = [1,11,31,366,731,1096] function find(day, obj) { let keys = Object.keys(obj); result = keys.concat(Number.MAX_SAFE_INTEGER).filter(key => { return day <= key; }).shift(); if(result === Number.MAX_SAFE_INTEGER) { result = keys.pop(); } return obj[result]; } days.forEach(day => console.log(day, " gets value:",find(day, data)))