Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组中值的顶部计数循环_Javascript - Fatal编程技术网

Javascript 数组中值的顶部计数循环

Javascript 数组中值的顶部计数循环,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

在本例中,如何通过‎层次排序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-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。太好了非常感谢。