Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #41 (permalink)  
Старый 10.08.2017, 12:11
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Сообщение от рони Посмотреть сообщение
Nexus,
думаю всем сейчас понятно, что массив должен быть от сортирован перед использованием, только это было основной мыслью, моего послания.
В идеале да, должен быть отсортирован, но бывает всякое.
Если с проектом работает несколько человек, то энный программист может "скормить" скрипту неотсортированный список.

Спасибо.
Ответить с цитированием
  #42 (permalink)  
Старый 10.08.2017, 12:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Nexus
то энный программист может "скормить" скрипту неотсортированный список.
ок
Сообщение от ksa
и потом "мужественно преодолеваешь препятствия".
вариант с неотсортированным массивом
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script>
$(function() {
    $("#process_all_b").click(function() {
        var d = [{
                value: 2000,
                ratio: 1.3
            }, {
                value: 5000,
                ratio: 1
            }, {
                value: 30000,
                ratio: .8
            }, {
                value: 0,
                ratio: 1.5
            }],
            a = +$("#count_inp").val() || 0,
            b = "Укажите расстояние";
        a && d.sort(function(a,b) {
  return b.value - a.value
}).some(function(c) {
            return a > c.value && (b = (a * c.ratio).toFixed(2) + " Рублей")
        });
        $("#result p").html(b)
    })
});
    </script>
</head>

<body>


<div id="calc_div">

    <div id="quantity_div"><p class="c">
        Сколько километров </p>
        <input type="text" id="count_inp"><br>
    </div>

    <div id="final_div">
        <p class="c"><button id="process_all_b" >Посчитать</button><br></p>
        <div id="result"><p class="c">0 Рублей</p></div>
    </div>
</div>

</body>
</html>
Ответить с цитированием
  #43 (permalink)  
Старый 10.08.2017, 12:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

laimas,
да разбирается конкретный случай, в котором сортировка массива необходима.
Ответить с цитированием
  #44 (permalink)  
Старый 10.08.2017, 12:48
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<html>
<head>
</head>
<body>
	<div id="calc_div">

		<div id="quantity_div"><p class="c">
			Сколько километров <br>
			<input type="text" id="count_inp" value="0"><br>
		</div>

		<div id="final_div">
			<p class="c"><button id="process_all_b" >Посчитать</button><br></p>
			<div id="result"><p class="c">Укажите расстояние</p></div>
		</div>
	</div>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
	<script>
			$("#process_all_b").click(function(){
				var sum = $("#count_inp").val(), arr = [[30000,0.8],[5000,1],[2000,1.3],[0,1.5]];
				sum *= arr.find(el => el[0] <= sum)[1];
				$("#result p").html(sum.toFixed(0)+' Рублей');
			});
	</script>
</body>
</html>

Последний раз редактировалось j0hnik, 10.08.2017 в 13:46.
Ответить с цитированием
  #45 (permalink)  
Старый 10.08.2017, 13:11
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Сообщение от рони
вариант с неотсортированным массивом
В этом случае ты сначала сортируешь массив данных (как минимум 1 раз проходишь его полностью в цикле) и только потом ищешь в цикле необходимый коэф. цены.
Не лучше ли было бы просто единожды полностью пройтись по этому массиву данных? (см. пост №25)

Обсуждение по второму кругу пошло, давайте заканчивать.
Тут решение задачи уже на все случаи жизни найдется.

Последний раз редактировалось Nexus, 10.08.2017 в 13:19.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заставить калькулятор считать дробные числа с запятой. webmanss Элементы интерфейса 3 10.03.2016 16:07
Калькулятор услуг tarantino Javascript под браузер 1 30.07.2015 00:21
Не работает Калькулятор просчета отопления igor700 Общие вопросы Javascript 5 26.02.2014 16:18
Кредитный калькулятор kurya4iy Общие вопросы Javascript 4 11.05.2013 23:09
Сделать калькулятор на сайт. asderru Работа 1 22.07.2010 13:46