Показать сообщение отдельно
  #1 (permalink)  
Старый 01.08.2020, 23:16
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

Чистое любопытство - можно ли сделать проще?
Всем привет.
Собственно задача такая.
Есть массив заказов. В зависимости от того какой по счету заказ за него начисляется разный процент указанный в настройках.
Например от первого до 4-го заказа оплачивается 5%, до 6го - 10%, до 8-го 20%, все остальные - 30%.

Я сделал это так
// Настройки  
const settings = [
	{numOrder: 4, percent: 10},
	{numOrder: 6, percent: 20},
	{numOrder: 8, percent: 30},
];

// Например сейчас это будет 5-й заказ
const quantity = 5;

// Функция которая определяет какой процент оплачивать 

const f = (q, sett) => {
	let res = 5; // По умолчанию 5% - это если заказов меньше чем первый элемент из настроек
	sett.forEach((el, i) => {
		if (el.numOrder <= q) {
			res = el.percent;
		}
	});
	return res;
}

console.log(f(quantity, settings));


Так то все работает, но вопрос - можно ли сделать лаконичней и проще?
Ответить с цитированием