이 예에서는 계층 적 순서 (1. 306, 2. 267, 3. 263)로 가장 큰 3 개의 값 목록 또는 배열을 얻는 방법을 설명합니다.배열 내의 값에 대한 최상위 계산 루프
var array = [267, 306, 108, 263, 67];
var largest = Math.max.apply(Math, array); // 306
이 예에서는 계층 적 순서 (1. 306, 2. 267, 3. 263)로 가장 큰 3 개의 값 목록 또는 배열을 얻는 방법을 설명합니다.배열 내의 값에 대한 최상위 계산 루프
var array = [267, 306, 108, 263, 67];
var largest = Math.max.apply(Math, array); // 306
가장 큰 항목을 작은 항목으로 정렬 한 다음 가장 큰 항목 3 개를 조각화해야합니다.
var arr = [267, 306, 108, 263, 67];
console.log(arr.sort((a, b) => b - a).slice(0, 3));
.as-console-wrapper { top: 0; max-height: 100% !important; }
감사합니다. 잘 작동합니다. 그러나 값은 문자열을 참조하며 정렬 후 값을 참조하는 방법을 모르겠습니다. 나는 값의 뒤에 그것을 추가했다. ('string'을 사용한다.) 그러나 정렬에 의해서는 유용하지 않다. 어떤 해결책? – user3236072
예,'(a, b) => b.localeCompare (a)'또는'parseInt (b, 10) - parseInt (a, 10)'를 사용하십시오. –
좋아요! :) 고맙습니다. – user3236072
당신은 당신이 원하는 것을 얻을 Array.sort() 및 Array.slice() 방법을 사용할 수 있습니다.
var array = [267, 306, 108, 263, 67];
var sorted = array.sort(function(a,b) { return b - a }); // sort the array in descending order
var largest = sorted.slice(0, 3); // get first three array elements
console.log(largest); // Array [ 306, 267, 263 ]
귀하의 대답은 정확하고 유용해야합니다. [정답이 아닌] 어떤 지시를하면 대답을 쓰지 말고 대답을 사용하십시오. –
힌트를 보내 주셔서 감사합니다. –
환영합니다. 하지만 당신의 대답은 @Mr과 동일합니다. 폴리whril. 동일한 답변은 중복으로 표시해야하며 제거해야합니다. –
당신은 그것을 좋아 얻을 수 있습니다 :
var array = [267, 306, 108, 263, 67];
findLargest3();
function findLargest3(){
// sort descending
array.sort(function(a,b){
if(a < b){ return 1; }
else if(a == b) { return 0; }
else { return -1; }
});
alert(array.slice(0, 3));
}
과 같이 Js Fiddle
당신은 도우미 함수를 작성할 수 있습니다 사용 :
function getTopItems(arr, howMany, comparator) {
if (typeof comparator !== "function") {
comparator = function(a, b) {return a > b;};
}
function addToOutput(item) {
var previous = item;
var found = false;
for (var innerIndex = 0; innerIndex < output.length; innerIndex++) {
if (found) {
var aux = previous;
previous = output[innerIndex];
output[innerIndex] = aux;
} else if (comparator(item, output[innerIndex])) {
found = true;
var aux = previous;
previous = output[innerIndex];
output[innerIndex] = aux;
}
console.log(output);
}
if (output.length < howMany) output.push(previous);
}
var index = 0;
var output = [];
while (index < arr.length) {
addToOutput(arr[index++]);
}
return output;
}
가능한 중복에 http : // 유래. com/questions/1063007/sort-of-integer-of-integer- 정확하게 –