Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 17.03.2018, 23:09
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Сообщение от j0hnik Посмотреть сообщение
а в excel откуда импортировали?
Я брал прайс, из него копировал часть данных в отдельную книгу Эксель, сохранял в csv.
Ответить с цитированием
  #22 (permalink)  
Старый 17.03.2018, 23:49
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

the_little,
Понятно, я сталкивался с похожим калькулятором непрактичный жуть, изменились цены на комплектующие маленькие ворота дорожают сильней, и сиди возись, а был бы норм алгоритм (с исходной программы) просто правиш определенный коэффициент и все. (потому как бухгалтера эти таблицы составлять особо не спешат) у них типа своих забот полон рот
Ответить с цитированием
  #23 (permalink)  
Старый 19.04.2018, 14:26
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Сообщение от j0hnik Посмотреть сообщение
the_little,
Понятно, я сталкивался с похожим калькулятором непрактичный жуть, изменились цены на комплектующие маленькие ворота дорожают сильней, и сиди возись, а был бы норм алгоритм (с исходной программы) просто правиш определенный коэффициент и все. (потому как бухгалтера эти таблицы составлять особо не спешат) у них типа своих забот полон рот
Сейчас по окнам делаю. Так там размеры от 500 до 2000+ метров. С шагом 10мм. И по каждому типу (1-2-3 створки, эконом, стандарт, премиум) свои таблицы...
Я конечно сделал через парсер считывание этих таблиц. Но все равно не понимаю, как так можно считать...
Ну там же площадь. Сделать расчет от площади + коэффициенты какие-нибудь и все...
Я не представляю как будут эти таблицы перечитывать))
Ответить с цитированием
  #24 (permalink)  
Старый 19.04.2018, 14:29
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Возник вопрос с поиском нужного элемента в массива.
Вот код, которым пользуюсь.
function checkArr(arr,a,b) {
      return arr[arr.findIndex(el=>el[0]>a)-1][arr[0].findIndex(el=>el>b)-1];
    }

Я так понимаю смысл такой. Находится элемент который больше заданного значения, и потом индекс уменьшается на 1.
Тогда задача так и стояла, если значение попадает между 2-х заданных, считать по меньшему.
Все работает как надо.

Сейчас задача обратная. Считать по большему.
Я попробовал изменить функцию на такую (вроде как должен искать меньшее и потом индекс увеличивать на 1), но выдает всегда минимальное значение...
function checkArr(arr,a,b) {
      return arr[arr.findIndex(el=>el[0]<a)+1][arr[0].findIndex(el=>el<b)+1];
    }
Ответить с цитированием
  #25 (permalink)  
Старый 19.04.2018, 14:34
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

сейчас кажется дошло...
он же начинает искать с первого значения, и соответсвенно натыкается сразу на самое первое, которое получается меньше заданного.
Поэтому он и выдает при любых заданных - самое минимальное....
Хмм, надо что-то переписать наверное. Такая логика уже не сработает...

МОжно ему как то сказать, чтобы он от максимального значения шел?
Ответить с цитированием
  #26 (permalink)  
Старый 19.04.2018, 14:39
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

блин, там же просто можно убрать -1
Ответить с цитированием
  #27 (permalink)  
Старый 19.04.2018, 14:42
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

return arr[arr.findIndex(el=>el[0]>=a)][arr[0].findIndex(el=>el>=b)];
Ответить с цитированием
  #28 (permalink)  
Старый 19.04.2018, 14:55
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

заметил непонятный баг
Диапазон ширины в одном массиве 600-1800.
Пока задается ширина меньше 1000, считает нормально. Как только вписываешь 1000 или больше - выдает первый столбец...

Как такое может быть?
Ответить с цитированием
  #29 (permalink)  
Старый 19.04.2018, 15:06
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Проверил на первой функции, которая на другом массиве работала нормально.
function checkArr(arr,a,b) {
      return arr[arr.findIndex(el=>el[0]>a)-1][arr[0].findIndex(el=>el>b)-1];
    }


тоже глючит. До каких-то значений работает нормально, потом дает сбой...
Может из-за парсера..., но такие таблицы руками в массив загонять дело не благодарное...
Ответить с цитированием
  #30 (permalink)  
Старый 19.04.2018, 15:21
Профессор
Отправить личное сообщение для the_little Посмотреть профиль Найти все сообщения от the_little
 
Регистрация: 25.09.2017
Сообщений: 186

Дело не в парсере... Массив проверил. в многомерном массиве 52 массива, в каждом 122 элемента.
Запросил data[51][121] - выдал правильное угловое значение. Т.е. весь массив заносится там куда-то. парсится таблица нормально.
Видимо в функции какая-то проблема, но в чем понять не могу.

Последний раз редактировалось the_little, 19.04.2018 в 15:36.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передать параметры (количество ячеек, минимальное число и максимальное число)? Почему SilentBelka Элементы интерфейса 4 19.10.2017 16:09
Обход многомерного массива с задержкой после каждого цикла Walk Общие вопросы Javascript 2 14.08.2017 16:17
Не могу выбрать из массива минимальное число Help DynkanMaclaud Events/DOM/Window 1 08.05.2015 20:30
Как найти наибольшее число и ввести его на экран? Ivan152 Оффтопик 2 20.05.2012 20:13