У меня есть код для вычисления количества монет из массива, этот код позволяет мне узнать, сколько я могу купить из таблицы с данным заказом, в коде orderSize изменяет порядок, чтобы достичь результата, но когда я помещаю область вводадля ручного ввода размера ордера, который приводит к изменению входного текста (если он превышает сумму первого элемента), я не хочу, чтобы текст изменялся.Я попытался добавить другую переменную, равную orderSize, но происходит то же самое.Что я должен сделать, чтобы предотвратить изменение входного текста.(Попробуйте ввести любое значение больше 100, текст изменится) (массив исходит из аутсорсинга, я не могу его контролировать) (Если я не изменю эту переменную, моя основная цель, вычисление количества монет, не может быть достигнута)
jsfiddle
new Vue({
el: '#app',
data: {
orderSize : null,
},
computed: {
calculateOrder () {
var coinArray = [["100","1"],["200","2"],["300","3"],["400","4"],
["500","5"],["600","6"]] ;
var sum = 0
var sum1 = 0
var i= 0
for (i = 0; i < coinArray.length; i++){
if (coinArray[i][0]*coinArray[i][1] < this.orderSize) {
sum1 += parseFloat(coinArray[i][1]);
sum += coinArray[i][0]*coinArray[i][1];
this.orderSize -= coinArray[i][0]*coinArray[i][1] ;
} else {
return sum1+this.orderSize/parseFloat(coinArray[i][0]);
}
}
},
},
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<input v-model="orderSize" placeholder="Order $">
<p>{{ calculateOrder }}</p>
</div>