Как я мог бы найти наибольшее число содержавшимся в массиве JavaScript?

Ошибка: функция round (double precision, integer) не существует

Решение: вам нужно добавить тип добавления, тогда он будет работать

Пример: round(extract(second from job_end_time_t)::integer,0)

200
задан Shog9 4 September 2009 в 14:20
поделиться

5 ответов

Resig to the resig:

Array.max = function( array ){
    return Math.max.apply( Math, array );
};

Предупреждение : поскольку максимальное количество аргументов составляет всего 65535 на некоторых виртуальных машинах , используйте цикл for, если вы не уверены, что массив настолько мал.

308
ответ дан 23 November 2019 в 05:02
поделиться

Рекурсивный подход к тому, как сделать это с помощью тернарных операторов

const findMax = (arr, max, i) => arr.length === i ? max :
  findMax(arr, arr[i] > max ? arr[i] : max, ++i)

const arr = [5, 34, 2, 1, 6, 7, 9, 3];
const max = findMax(arr, arr[0], 0)
console.log(max);
0
ответ дан 23 November 2019 в 05:02
поделиться

Простой один лайнер

[].sort().pop()
0
ответ дан 23 November 2019 в 05:02
поделиться

Вы можете отсортировать массив в порядке убывания и получить первый элемент:

[267, 306, 108].sort(function(a,b){return b-a;})[0]
29
ответ дан 23 November 2019 в 05:02
поделиться

Вы можете использовать функцию apply для вызова Math.max :

var array = [267, 306, 108];
var largest = Math.max.apply(Math, array); // 306

Как это работает?

Используется функция apply для вызова другой функции с заданным контекстом и аргументами, предоставленными в виде массива. Функции min и max могут принимать произвольное количество входных аргументов: Math.max (val1, val2, ..., valN)

Итак, если мы вызовем:

Math.min.apply(Math, [1,2,3,4]);

Функция apply выполнится:

Math.min(1,2,3,4);

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

194
ответ дан 23 November 2019 в 05:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: