Array.sort() 在不同瀏覽器上的穩定性如何?
Array.sort() 方法的穩定性,決定排序後是否保留相等元素的順序,不同瀏覽器有所不同:
從ES2019 開始,要求排序方法穩定:
這表示數組中相等的元素在排序後將保持其相對順序。
在ES2019 之前,穩定性取決於瀏覽器:
Edge: 對於超過512 個元素的數組不穩定
<code class="js">function Pair(_x, _y) { this.x = _x; this.y = _y; } function pairSort(a, b) { return a.x - b.x; } // Create an array with enough entries to trigger the "more efficient" sort method var y = 0; var check = []; while (check.length < 100) { check.push(new Pair(Math.floor(Math.random() * 3) + 1, ++y)); } check.sort(pairSort); // Check for instability by comparing the order of equal elements var min = {}; var issues = 0; for (var i = 0; i < check.length; ++i) { var entry = check[i]; var found = min[entry.x]; if (found) { if (found.y > entry.y) { console.log("Unstable at " + found.i + ": " + found.y + " > " + entry.y); ++issues; } } else { min[entry.x] = {x: entry.x, y: entry.y, i: i}; } } // Log stability status if (!issues) { console.log("Sort appears to be stable"); }</code>
以上是Array.sort() 在不同瀏覽器中穩定嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!