Имеется следующий код:
$('#year').on('change', function() {
$('#result').html('');
a = [];
var maxleng = getMax(a, "UF_LENGTH");
$.getJSON("api.php", {
action: "getAkb"
})
.done(function(data) {
$.each(data, function(i, item) {
if (item.UF_TYPE == 'A') a.push(item);
});
if (a.length > 0) {
result += '<h4>Europe</h4>';
console.log("Наибольшая длина: " + maxleng.UF_LENGTH);
$.each(a, function(i, item) {
result += item.UF_LENGTH + ' x ' + item.UF_WIDTH + ' x ' + item.UF_HEIGHT + ' ' + item.UF_CAPACITY + 'Ah ' + item.UF_CAPACITY + 'EN V' + '<br>';
});
}
$('#result').html(result);
});
});
Всё что должно интересовать - это переменная maxleng, которая занимается выводом максимального значения по ключу UF_LENGTH в массиве "a".
Функция getMax:
function getMax(arr, prop) {
var max;
for (var i=0 ; i<arr.length ; i++) {
if (!max || parseInt(arr[i][prop]) > parseInt(max[prop]))
max = arr[i];
}
return max;
}
В .done(function(data) я поставил console.log("Наибольшая длина: " + maxleng.UF_LENGTH); чтобы вывести максимальное значение по ключу json из массива "a".
Возникла проблема, когда я попробовал исполнить свой скрипт, в консоли вылезла ошибка: Uncaught TypeError: Cannot read property 'UF_LENGTH' of undefined.
Что я сделал в коде не так?
Массив данных примерно такой:
[
{"UF_LENGTH":"1"},
{"UF_LENGTH":"2"},
{"UF_LENGTH":"3"}
]