I have a list of different units:
const unitList = [1, 10, 36, 50, 20]; // all different numbers and all numbers are above 0
const unit = 13; // this is not included in unitList and not more that max number in unitList
And I want to get the index of unit in which unit
should be placed before. for instance:
const unit = 13;
returns index 4
because it should be placed before 20
const unit = 35;
returns index 2
because it should be placed before 36
function getUnitPosition() {
if(!unitList.length) return 'before add new unit';
const max = Math.max(...unitList);
if(unit > max) return 'before add new unit';
const min = Math.min(...unitList);
if(unit < min) return columns[0].id;
for(let a = 0; a < unitList.length; a++) {
console.log(unit , unitList[a], unit < unitList[a])
if(unit < unitList[a]) return columns[a].id;
}
}
You could take the first found index with a smaller value than unit
. For any other smaller value check the value to get the smallest one.
const
getIndex = (data, unit) => {
let index;
for (let i = 0; i < data.length; i++) {
if (
unit < data[i] &&
(index === undefined || data[i] < data[index])
) index = i;
}
return index;
},
unitList = [1, 10, 36, 50, 20];
// 13 ^^
// 35 ^^
console.log(getIndex(unitList, 13)); // 4 placed before 20
console.log(getIndex(unitList, 35)); // 2 placed before 36