Как рассчитать отверстия с 3-мя параметрами, зависящими друг от друга с помощью JS - PullRequest
0 голосов
/ 06 декабря 2018

Мне нужно создать простую программу, которая рассчитывает вводимые пользователем данные.Пользователь должен выбрать 3 параметра - размер, давление и единицы измерения.Размер и давление указаны в html , выберите опцию , а в единицах: input .Я не могу понять, как запустить мой код расчета ...

Пример:

размер = 100, давление = 6, единицы = 10 /// размер100 в давлении 6 имеют 8 отверстий с размером M8, так что в результате получается 8 * 10 = 80 отверстий M8.

размер = 100, давление = 10, единицы = 10 /// размер 100 в давлении 10 имеют 10отверстия с размером M8, поэтому в результате получается 10 * 10 = 100 отверстий M8.

размер 150, давление = 10, единицы = 10 /// размер 150 при давлении 10 имеют 12 отверстий, с размером M10, поэтомурезультат 10 * 10 = 100 отверстий M10.

конец и т. Д.

Размер отверстий зависит от входного размера.

Сколько отверстий зависит от давления.

Мне нужно руководство, как запустить мой код расчета.Я пробовал с циклами и переключателем, но много кода для перечисления размеров от 50 до 1000, давление от 4 до 20.

1 Ответ

0 голосов
/ 06 декабря 2018

Чтобы достичь ожидаемого результата, используйте нижеприведенную опцию создания одного объекта, такого как свойства, и используйте его с функцией для расчетов на основе параметров

  1. Создание объекта с размером, давлением и соответствующим множителем
  2. Создать функцию с параметрами - размер, давление, единицы
  3. Возвращать вычисленное значение на основе параметров, переданных в функцию со значениями из объекта свойств
  4. Гибко, чтобы добавлять новые размеры в качестве нового объекта в объект свойств вместосоздание нового корпуса переключателя или обновление корпуса переключателя

var properties = {
50: {
   '6': {multiplier: 4},
  '10': {multiplier: 6},
  '16': {multiplier: 10},
  'na': {multiplier: 12}
 },
80: {
   '6': {multiplier: 6},
  '10': {multiplier: 8},
  '16': {multiplier: 20},
  'na': {multiplier: 24}
 },
100: {
   '6': {multiplier: 8},
  '10': {multiplier: 10},
  '16': {multiplier: 20},
  'na': {multiplier: 24}
 },
150: {
   '6': {multiplier: 8},
  '10': {multiplier: 10},
  '16': {multiplier: 16},
  'na': {multiplier: 26}
 }
}

function calculate(size, pressure, units){
   return properties[size][pressure] ? properties[size][pressure].multiplier* units : properties[size]['na'].multiplier * units ;
}

console.log("size = 100, pressure = 6, units = 10, caculated holes --> ", calculate(100, 6, 10)); // 80
console.log("size = 100, pressure = 10, units = 10, caculated holes --> ", calculate(100, 10, 10)); //100
console.log("size = 150, pressure = 10, units = 10, caculated holes --> ", calculate(150, 10, 10)); // 100

codepen - https://codepen.io/nagasai/pen/VVozqw?editors=1010

...