JS Pricebreak Calculator.Найти значение массива из кол-во - PullRequest
0 голосов
/ 09 декабря 2018

Здравствуйте, я создаю калькулятор цен для трафаретной печати в vue.js

Упрощенная версия объекта, с которым я работаю

data() {
    return {
      qty: 0,
      breaks: [12, 24, 36, 100],
      matrix: [10, 9, 8, 7],
      pricePer: 0, 
      total: 0 // (pricePer * qty)
    };
},

У меня естьвход, который изменяет количествообъект "breaks" - это пороговое значение количества.

Таким образом, если пользователь вводит кол-во меньше 12 (первое значение в массиве "breaks" должно быть ошибкой, потому что минимальное значение для screenprinting - 12

массив "matrix" - это цена за рубашку

, поэтому мне нужна функция, которая будет

  1. Взять количество и найти индекс ближайшего значения вмассив перерывов

  2. Используйте этот индекс, чтобы найти цену за рубашку в массиве "матрица"


Когда все будет готовобудет намного больше переменных, вычисляющих цену.

(кол-во, односторонний / двухсторонний, количество напечатанных цветов)

, но если я могу просто получить представление окак следует подойти к этой функции, я смогу применить ее к остальной части калькулятора.

Это мой первый пост здесь, спасибо !!!

1 Ответ

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

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

watch: {
  qty (val) {
    if (val > 11) {
      let res = 0;
      // The block gets the nearest value in the breaks array
      let arr = this.breaks;
      let diff = Math.abs(arr[0] - val);
      for (let i = 0; i < arr.length-1; i++) {
        if (val == arr[i]) {
          res = i;
        }

        if (Math.abs(arr[i] - val) < diff) {
          res = i
        }
      }
      // Price per shirt will be the value at index of i
      let PPS = this.matrix[i];
    }
  }
}

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...