Как выбрать наибольший элемент массива?

166
12 мая 2019, 14:10

Есть такая задача - отследить последнее сообщение в чате. Я решил отслеживать его по времени, собираю массив, осталось оттуда только вытащить самое максимальное значение, так как я ещё новичок, в некоторых вещах путаюсь. Данный скрипт выводит -Infinity, и гугл подводит, хотя вопрос, я понимаю, что простой.

 var timestamp = {};
    $('a.times').each(function(i, el){
        var val = $(el).attr('data-temp');
        var name = $(el).attr('data-cgid');
        timestamp[name] = Number(val);
    });
    var maxTime = Math.max.apply(timestamp);
    console.log(maxTime);
Answer 1

Прежде всего, как сказал @Санитариум лучше хранить сообщения чата в структуре данных. Что же касательно вашего кода, то в нём есть ошибки

  1. Math.max.apply(null, numArray); работает с массивом, вы же объявили и используете timestamp как объект
  2. Соответсвенно и записывать данные в эту переменную надо через push
  3. Для доступа к атрибуту data у jquery есть свой метод.

Вот как можно переработать ваш код.

var timestamp = []; 
$('a.times').each(function(i, el) { 
  var val = $(el).data('temp'); 
  var name = $(el).data('cgid'); 
  timestamp.push(Number(val)); 
}); 
 
var maxTime = Math.max.apply(null, timestamp); 
 
console.log(maxTime);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<a class="times" data-temp="123451" data-cgid="1"></a> 
<a class="times" data-temp="123452" data-cgid="2"></a> 
<a class="times" data-temp="123454" data-cgid="4"></a> 
<a class="times" data-temp="123453" data-cgid="3"></a>

Answer 2

Рекомендую использовать JQuery .last()

READ ALSO
Не записывается в бд

Не записывается в бд

Уже третий день мучаюсь, не могу занести данные в БДMSSQL Server 2016

133
Скрыть метку в AR. UNITY

Скрыть метку в AR. UNITY

Как я понял, картинка с тату не прозрачная, а белая, напримерНо потом этот цвет "перекрашивается" под цвет кожи

136
Кэш Entity Framework не сбрасывается

Кэш Entity Framework не сбрасывается

При вызове из метода контроллера метода

150