@Ooos
Front-End

Как написать условия для диапазона цен?

Доброго всем дня!
Есть массив с диапазоном цен (в переменой есть шаг 4000)
[1000,4000,8000,12000,16000]
Есть цена (1500) которую нужно соотнести с индексом диапазона.
Как получить индекс на выходе из условия?
1500 (0), 11000 (2) 13500 (3)б 18000 (4)
  • Вопрос задан
  • 190 просмотров
Решения вопроса 2
Ni55aN
@Ni55aN
Из примера не ясно по какому правилу нужно отбирать, так как 11000 ближе к 12000, а не 8000.
Если брать только по модулю разности, тогда:

var prices = [1000,4000,8000,12000,16000];
var price = 18000;
var diff = prices.map(a=>Math.abs(a-price));
diff.indexOf(Math.min(...diff))
Ответ написан
Комментировать
Hardwit
@Hardwit
Front-end Developer
let arrayForTest = [1000,4000,8000,12000,16000];

function checkIndex(array, number) {
	let resultIndex;

	array.some((elem, index, array) => { number > elem && ( number < array[index + 1] || index === array.length - 1) ? (resultIndex = index) || true : false  });

	return resultIndex;
}

checkIndex(a, 1500) //0 
checkIndex(a, 4500) //1
checkIndex(a, 19000) //4
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы