Javascript 数组中值的顶部计数循环
在本例中,如何通过层次排序1。306, 2. 267, 3. 263Javascript 数组中值的顶部计数循环,javascript,Javascript,在本例中,如何通过层次排序1。306, 2. 267, 3. 263 var array = [267, 306, 108, 263, 67]; var largest = Math.max.apply(Math, array); // 306 您需要将最大项排序为最小项,然后将前三项进行切片 var-arr=[26730610826367]; console.logarr.sorta,b=>b-a.0,3; .作为控制台包装{top:0;max height:100%!important
var array = [267, 306, 108, 263, 67];
var largest = Math.max.apply(Math, array); // 306
您需要将最大项排序为最小项,然后将前三项进行切片 var-arr=[26730610826367]; console.logarr.sorta,b=>b-a.0,3;
.作为控制台包装{top:0;max height:100%!important;}您需要将最大项排序到最小项,然后将前三项切片 var-arr=[26730610826367]; console.logarr.sorta,b=>b-a.0,3; .作为控制台包装{top:0;最大高度:100%!important;}您可以使用 和 方法来获得您想要的
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 ]
你可以用
和
方法来获得您想要的
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 ]
你可以像这样得到它:
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));
}
工作时您可以得到如下结果:
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));
}
工作您可以编写一个助手函数,如下所示:
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;
}
您可以编写一个助手函数,如下所示:
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;
}
你的答案应该是准确和实用的。如果你给出了一些指示[不是确切的答案],那么就用评论,而不是把它作为答案。谢谢你的提示。但你的答案和“polywhril先生”一模一样。相同的答案应标记为重复,并应删除。您的信息非常灵通。但无论如何,这不是我的决定。你的回答应该准确、实用。如果你给出了一些指示[不是确切的答案],那么就用评论,而不是把它作为答案。谢谢你的提示。但你的答案和“polywhril先生”一模一样。相同的答案应标记为重复,并应删除。您的信息非常灵通。但这不是我的电话。可能重复,可能重复,谢谢。很好。但是这些值引用了一个字符串,我不知道如何在排序后引用它。我已经使用+'string'将其添加到值后面,但是通过排序它没有用处。有解决方案吗?是的,使用:a,b=>b.localeComparea或parseIntb,10-parseInta,10。太好了谢谢,谢谢。很好。但是这些值引用了一个字符串,我不知道如何在排序后引用它。我已经使用+'string'将其添加到值后面,但是通过排序它没有用处。有解决方案吗?是的,使用:a,b=>b.localeComparea或parseIntb,10-parseInta,10。太好了非常感谢。