![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: нет Всего: 8 |
Порылся в интернете, но не нашел решения, может у кого есть готовое решение, чтобы не изобретать велосипед.
Есть таблица в екселе столбцы ширина и строки Высота
2250 2375 2500 - это ширина 2085 2210 2335 - это высота остальное это цены имеем на входе любые значения высоты и ширины, нужно найти какая ячейка с ценой соответствует этим параметрам Это сообщение отредактировал(а) Vardoulacha - 19.3.2013, 07:43 |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Как Excel связан с JS?
|
|||
|
||||
| Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: нет Всего: 8 |
Никак не связан, данные просто начальные там есть. их надо будет перенести в JS в какую-нибудь структуру, может в объект может в массив (вариантов несколько), а потом надо как-то использовать эту информацию чтобы получить нужные данные. Пока что придумал только такое решение 1) засовываем высоту в массив ID1 = значение 2) ширину в другой массив ID2 = значение 3) третий массив состоит из ключей ID1+ID2 (перечисление всех возможных вариантов) и значения которое должно быть 4) затем получим на входе ширину и высоту находим ID1 и ID2 складываем их и ищем есть ли такая пара в массиве значений, если есть то показываем значение, если нет методом округлений подгоняем результат под существующие значения понятно что костыль, вот и спрашиваю может кто такое уже делал, если нет сам сделаю через это костыль |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Если абстрагироваться от задачи переноса данных из Excel`я, то задача сводится к понятию двумерного ассоциативного массива (в js это просто двумерный объект):
|
|||
|
||||
| Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: нет Всего: 8 |
Ну да, как данные попадут в JS это не вопрос, про двумерный массив я не подумал, удобно, спасибо за наводку |
|||
|
||||
| Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: нет Всего: 8 |
Ну вот так вот я решил задачу
|
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Что-то не то получилось. Изначалньо была приведена таблица 3х3, где все стороны равны - а значит выбирать для первого и второго уровня массива было все равно какую. Когда стороны не равны - лучше выбирать большую для первого уровня, экономия получится. У тебя наоборот получилось, у тебя 4 элемента первого уровня (2250, 2375, 2500 и 2625), и около 9 элементов второго. Лучше сделать наоборот. НО! Этот совет касается ситуации, когда твои элементы второго уровня были бы идентичны в элементах первого уровня. У тебя я такого не вижу (например, в 2625 нет 3085). Это либо значит что в первом посте ты привел слишком абстрактные данные, либо в полученном коде не проставляешь нули там, где данных нет.
Весь мой пост сводился не к тому, что ты сделал не правильно (работает и хорошо), а к тому, как было бы можно сделать в идеале. Как-то так) |
|||
|
||||
| Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: нет Всего: 8 |
В первом посте я для примера сократил таблицу до трех значений, на самом деле это только лишь одна из трех таблиц, вторая раза в три длиннее во втором уровне, а третья в три раза длиннее в первом уровне и в 10 раз длиннее во втором уровне. Да и кстати, задача немного еще усложнилась )) надо выбрать не ближайшее значение, а из двух ближайших выбрать большее, т.е. по сути найдя ближайшее нужно посмотреть если оно меньше введенного то взять из массива следующее значение. Это сообщение отредактировал(а) Vardoulacha - 23.3.2013, 06:28 |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Тогда есть смысл привести не абстрактные значения, а конкретные. И написать ожидаемые результаты.
|
|||
|
||||
| Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: нет Всего: 8 |
||||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |