голова над методом filter, но что то уже запутался.
let colorize = (length) => {
const colorFromNumberOfPeople = [
{ minPeople: 0, color: 'gray' },
{ minPeople: 2, color: 'blue' },
{ minPeople: 6, color: 'green' },
{ minPeople: 10, color: 'red' },
];
return
length > colorFromNumberOfPeople[3].minPeople
? colorFromNumberOfPeople[3].color
: length > colorFromNumberOfPeople[2].minPeople
? colorFromNumberOfPeople[2].color
: length > colorFromNumberOfPeople[1].minPeople
? colorFromNumberOfPeople[1].color
: length > colorFromNumberOfPeople[0].minPeople
? colorFromNumberOfPeople[0].color
: '';
};
Найти Find метод, фильтровать Filter
let colorize = (length) => { const colorFromNumberOfPeople = [ { minPeople: 0, color: 'gray' }, { minPeople: 2, color: 'blue' }, { minPeople: 6, color: 'green' }, { minPeople: 10, color: 'red' }, ]; return Math.max.apply(null, colorFromNumberOfPeople.filter(el => el.minPeople < length).map(el => el.minPeople)); }; colorize(11); Может потом что-то по-лучше подкинут Но вообще можно обычным циклом пробежать и в переменную последнее значение записывать
for (const option of colorFromNumberOfPeople.reverse()) { const { minPeople, color } = option if (length >= minPeople) { return color } }
return colorFromNumberOfPeople .reverse() .find( x => length > x.minPeople).color;
Обсуждают сегодня