Ответ 1
Вы можете сделать это следующим образом:
var arr = [3, 4, 12, 1, 0, 5,22,20,18,30,52];
arr = arr.sort(function (a, b) { return a - b; });
arr = arr.slice(Math.max(arr.length - 5, 0))
console.log(arr);
hi я новичок в angularjs, здесь мне нужно пять наивысших значений в этом массиве, а не только одно максимальное значение. я попытался, но я получаю только одно максимальное значение.
var arr = [3, 4, 12, 1, 0, 5,22,20,18,30,52];
var max = arr[0];
var maxValues = [];
for (var k = 1; k < arr.length; k++) {
if (arr[k] > max) {
max = arr[k]; // output is 52
//do some thing to push max five values ie 52,30,22,20,18
}
}
console.log("Max is: " + max);
console.log("total five max values is: " + maxValues);expected output[52,30,22,20,18];
Вы можете сделать это следующим образом:
var arr = [3, 4, 12, 1, 0, 5,22,20,18,30,52];
arr = arr.sort(function (a, b) { return a - b; });
arr = arr.slice(Math.max(arr.length - 5, 0))
console.log(arr);
Вы можете отсортировать его в порядке убывания, а затем извлечь значения n
, используя array.slice
function getMaxValues(arr, n){
return arr.sort(function(a,b){ return b-a }).slice(0,n);
}
var arr = [3, 4, 12, 1, 0, 5,22,20,18,30,52];
console.log(getMaxValues(arr, 5))
console.log(getMaxValues(arr, 3))
С помощью angular вы можете использовать limitTo
.
В привязке HTML-шаблона
{{ limitTo_expression | limitTo : limit : begin}}
В JavaScript
$filter('limitTo')(input, limit, begin)