gpt4 book ai didi

JavaScript 使用函数排序

转载 作者:行者123 更新时间:2023-12-02 15:10:16 25 4
gpt4 key购买 nike

在进行在线类(class)时,我遇到了以下代码。我无法理解这个方法的逻辑。如果有人能帮助我理解代码,我将不胜感激:

var v=[30,2,1,9,15,10,55,20,45,30,25,40,50,35];
var msg = document.getElementById("message")
msg.innerHTML +="<p><strong>Original Order:</strong>[" + v + "]<p>";

v.sort();
msg.innerHTML +="<p><strong>After Sorting Order(string):</strong>[" + v + "]<p>";

v.sort(function(a,b){return a-b;});
msg.innerHTML +="<p><strong>After Sorting Order(Ascending):</strong>[" + v + "]<p>";

v.sort(function(a,b){return b-a;});
msg.innerHTML +="<p><strong>After Sorting Order(Descending):</strong>[" + v + "]<p>";

我需要了解function(a,b){return a-b} - 这个函数如何帮助JavaScript排序?请注意,我是编程新手。

最佳答案

虽然其他人提供了许多很棒的链接,但我想分享一种我对最基本的排序函数的思考方式。

假设您有一个非常基本的数组:

var test = [1, 10];

排序函数接受一个函数作为带有签名的参数:

function (firstVal, secondVal) { 
return NUMBER;
}

当您对测试数组应用排序时

test.sort(function(firstVal, secondVal) {

// firstVal = 1
// secondVal = 10

// NOTES:
// return NEGATIVE_NUMBER if firstVal should come *before* secondVal
// return 0 if firstVal equals secondVal
// return POSITIVE_NUMBER if firstVal should come *after* secondVal

// return firstVal - secondVal; // -9; 1 will come before 10; [1, 10]
return secondVal - firstVal; // 9; 10 will come before 1; [10, 1];
});

然后该函数将遍历数组中的所有值。但如果你只考虑 2 个值,我发现推理排序方法要容易得多。 JavaScript 将为您处理该算法,我相信提到的一些链接将介绍它如何实现这一点。

关于JavaScript 使用函数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34823450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com