почему ты решил что первый элемент будет минимальным?
var minEl = rates[0].value;
тут скорей нужен метод sort нежели filter
var br = rates.filter(function(elem){
return elem.value <= minEl;
});
аналогично первому вопросу, ты отфильтровал массив по значению первого элемента, это не значит что первый элемент нового массива будет минимальным.
this.ValueMin = br[0].value;
если данных будет более 100, то лучше фильтрацию и сортировку сделать за один проход по массиву
var rates = response.reduce(function (acc, elem) {
if (elem.id === va) {
if (!acc) {
return elem.value;
}
return elem.value < acc ? elem.value : acc;
}
return acc;
}, 0);
подправил код