JavaScript Sorting Arrays - W3Schools
Maybe your like
Tutorials
Tutorials filter input ×HTML and CSS
Learn HTML Tutorial Reference Learn CSS Tutorial Reference Learn RWD Tutorial Learn Bootstrap Overview Learn W3.CSS Tutorial Reference Learn Sass Tutorial Reference Learn Colors Tutorial Reference Learn Icons Tutorial Reference Learn SVG Tutorial Reference Learn Canvas Tutorial Reference Learn Graphics Tutorial Learn UTF-8 and Emojis Reference Learn How To TutorialData Analytics
Learn AI Tutorial Learn Generative AI Tutorial Learn ChatGPT-3.5 Tutorial Learn ChatGPT-4 Tutorial Learn Google Bard Tutorial Learn Machine Learning Tutorial Learn DSA Tutorial Learn Data Science Tutorial Learn NumPy Tutorial Learn Pandas Tutorial Learn SciPy Tutorial Learn Matplotlib Tutorial Learn Statistics Tutorial Learn Excel Tutorial Learn Google Sheets TutorialWeb Building
Create a Website HOT! Create a Server NEW Where To Start Web Templates Web Statistics Web Certificates Web Development Introduction to Programming Introduction to HTML & CSS Code Editor Test Your Typing Speed Play a Code Game Cyber Security Accessibility Join our NewsletterJavaScript
Learn JavaScript Tutorial Reference Learn React Tutorial Learn jQuery Tutorial Reference Learn Vue Tutorial Reference Learn Angular Tutorial Learn AngularJS Tutorial Reference Learn JSON Tutorial Reference Learn AJAX Tutorial Learn AppML Tutorial Reference Learn W3.JS Tutorial ReferenceWeb Building
Create a Website HOT! Create a Server NEW Where To Start Web Templates Web Statistics Web Certificates Web Development Introduction to Programming Introduction to HTML & CSS Code Editor Test Your Typing Speed Play a Code Game Cyber Security Accessibility Join our NewsletterBackend
Learn Python Tutorial Reference Learn SQL Tutorial Reference Learn MySQL Tutorial Reference Learn PHP Tutorial Reference Learn Java Tutorial Reference Learn C Tutorial Reference Learn C++ Tutorial Reference Learn C# Tutorial Learn R Tutorial Learn Kotlin Tutorial Learn Rust Tutorial Learn Go Tutorial Learn Django Tutorial Reference Learn PostgreSQL Tutorial Learn TypeScript Tutorial Learn ASP Tutorial Reference Learn Node.js Tutorial Reference Learn Raspberry Pi Tutorial Learn Swift Tutorial Learn Git Tutorial Learn Bash Tutorial Learn MongoDB Tutorial Learn AWS Cloud Tutorial Learn XML Tutorial ReferenceData Analytics
Learn AI Tutorial Learn Generative AI Tutorial Learn ChatGPT-3.5 Tutorial Learn ChatGPT-4 Tutorial Learn Google Bard Tutorial Learn Machine Learning Tutorial Learn DSA Tutorial Learn Data Science Tutorial Learn NumPy Tutorial Learn Pandas Tutorial Learn SciPy Tutorial Learn Matplotlib Tutorial Learn Statistics Tutorial Learn Excel Tutorial Learn Google Sheets TutorialWeb Building
Create a Website HOT! Create a Server NEW Where To Start Web Templates Web Statistics Web Certificates Web Development Introduction to Programming Introduction to HTML & CSS Code Editor Test Your Typing Speed Play a Code Game Cyber Security Accessibility Join our Newsletter ×References
References filter input ×HTML and CSS
HTML Tags Reference CSS Reference W3.CSS Reference Bootstrap 3 Reference Bootstrap 4 Reference Color Names Icons Reference SVG Reference Canvas Reference Sass Reference UTF-8 Charset Reference UTF-8 Emojis ReferenceJavaScript
JavaScript Reference jQuery Reference Vue Reference Angular Reference JSON Reference AppML Reference W3.JS ReferenceBackend
Python Reference SQL Reference MySQL Reference PHP Reference Java Reference C Reference C++ Reference Django Reference ASP Reference Node.js Reference XML Reference ×Exercises
Excercises filter input ×HTML and CSS
HTML Exercise Quiz CSS Exercise Quiz Bootstrap 3 Exercise Quiz Bootstrap 4 Exercise Quiz Bootstrap 5 Exercise QuizData Analytics
DSA Exercise Quiz NumPy Exercise Quiz Pandas Exercise Quiz SciPy Exercise Quiz Excel Exercise What is an Exercise? What is a Quiz?JavaScript
JavaScript Exercise Quiz React Exercise Quiz jQuery Exercise Quiz Vue Exercise Quiz Angular Exercise QuizBackend
Python Exercise Quiz SQL Exercise Quiz MySQL Exercise Quiz PHP Exercise Quiz Java Exercise Quiz C Exercise Quiz C++ Exercise Quiz C# Exercise Quiz R Exercise Quiz Kotlin Exercise Quiz Django Exercise Quiz Node.js Exercise Quiz PostgreSQL Exercise Quiz TypeScript Exercise Quiz Git Exercise Quiz Bash Exercise Quiz Go Exercise MongoDB ExerciseData Analytics
DSA Exercise Quiz NumPy Exercise Quiz Pandas Exercise Quiz SciPy Exercise Quiz Excel Exercise What is an Exercise? What is a Quiz? ×Certificates
Filter field for certifications ×HTML and CSS
HTML Certificate Course CSS Certificate Course Bootstrap 3 Certificate Course Bootstrap 4 Certificate Course Bootstrap 5 CertificateData Analytics
DSA Certificate Data Analytics Course NumPy Certificate Course Pandas Certificate Course Excel Certificate Social Media Course What is a Certificate?Programs
Full Access Best Value! Front End Certificate Course Web Dev. Certificate Course Web App Certificate Course Web Design Certificate CourseJavaScript
JavaScript Certificate Course React Certificate Course jQuery Certificate Course Vue CertificatePrograms
Full Access Best Value! Front End Certificate Course Web Dev. Certificate Course Web App Certificate Course Web Design Certificate CoursePrograms
Full Access Best Value! Front End Certificate Course Web Dev. Certificate Course Web App Certificate Course Web Design Certificate CourseBackend
Python Certificate Course SQL Certificate Course MySQL Certificate PHP Certificate Course Java Certificate Course C Certificate C++ Certificate Course C# Certificate Course R Course Django Certificate NodeJS Certificate TypeScript Certificate Course XML Certificate Course Cyber Security Certificate Course Accessibility Certificate CourseData Analytics
DSA Exam Data Analytics Course NumPy Course Pandas Course Excel Certificate Social Media Course What is a Certificate? ×All Our Services
Dark mode Services filter input ×W3Schools offers a wide range of services and products for beginners and professionals, helping millions of people everyday to learn and master new skills.
Free Tutorials
Enjoy our free tutorials like millions of other internet users since 1999
References
Explore our selection of references covering all popular coding languages
Create a Website
Create your own website with W3Schools Spaces - no setup required
Exercises
Test your skills with different exercises
Quizzes
Test yourself with multiple choice questions
Get Certified
Document your knowledge
Log in / Sign Up
Create an account to track your progress
League
Earn XP and climb the ranks with different challenges
Upgrade
Become a PLUS user and unlock powerful features (ad-free, hosting, support,..)
Where To Start
Not sure where you want to start? Follow our guided path
Code Editor (Try it)
With our online code editor, you can edit code and view the result in your browser
Videos
Learn the basics of HTML in a fun and engaging video tutorial
Templates
We have created a bunch of responsive website templates you can use - for free!
Web Hosting
Host your own website, and share it to the world with W3Schools Spaces
Create a Server
Create your own server using Python, PHP, React.js, Node.js, Java, C#, etc.
How To's
Large collection of code snippets for HTML, CSS and JavaScript
CSS Framework
Build fast and responsive sites using our free W3.CSS framework
Browser Statistics
Read long term trends of browser usage
Typing Speed
Test your typing speed
Color Picker
Use our color picker to find different RGB, HEX and HSL colors.
Code Game
W3Schools Coding Game! Help the lynx collect pine cones
Newsletter
Join our newsletter and get access to exclusive content every month
Emojis Reference
Check out our refererence page with all the emojis supported in HTML 😊
UTF-8 Reference
Check out our full UTF-8 Character reference
Community
Chat, Learn and Connect with Us on Discord
Teachers
Contact us about W3Schools Academy for educational institutions
For Businesses
Contact us about W3Schools Academy for your organization
Contact Us
About sales: [email protected] About errors: [email protected]
× ❮ ❯ HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS DSA TYPESCRIPT ANGULAR ANGULARJS GIT POSTGRESQL MONGODB ASP AI R GO KOTLIN SWIFT SASS VUE GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE INTRO TO PROGRAMMING INTRO TO HTML & CSS BASH RUSTBasic JavaScript
JS Tutorial JS Tutorial JS Introduction JS Where To JS Output JS Syntax JS Syntax JS Statements JS Comments JS Variables JS Variables JS Let JS Const JS Types JS Operators JS Operators JS Arithmetic JS Assignment JS Comparisons JS If Conditions JS Conditional JS If JS If Else JS Ternary JS Switch JS Booleans JS Logical JS Loops JS Loops JS Loop for JS Loop while JS Break JS Continue JS Strings JS Strings JS String Templates JS String Methods JS String Search JS String Reference JS Numbers JS Numbers JS Number Methods JS Number Properties JS Number Reference JS Bitwise JS BigInt JS Functions Function Intro Function Parameters Function Expressions Function Arrows JS Objects Objects Object Properties Object Methods Object Display JS Scope JS Scope JS Code Blocks JS Hoisting JS Strict Mode JS Dates JS Dates JS Date Formats JS Date Get JS Date Set JS Date Methods JS Arrays JS Arrays JS Array Methods JS Array Search JS Array Sort JS Array Iterations JS Array Reference JS Array Const JS Sets JS Sets JS Set Methods JS Set Logic JS Set WeakSet JS Set Reference JS Maps JS Maps JS Map Methods JS Map WeakMap JS Map Reference JS Iterations JS Loops JS Iterables JS Iterators JS Generators JS Math JS Math JS Math Reference JS Math Random JS RegExp JS RegExp JS RegExp Flags JS RegExp Classes JS RegExp Metachars JS RegExp Assertions JS RegExp Quantifiers JS RegExp Patterns JS RegExp Objects JS RegExp Methods JS Data Types JS Data Types JS typeof JS toString() JS Type Conversion JS Errors JS Errors Intro JS Errors Silent JS Error Statements JS Error Object JS Debugging JS Events Intro to Events Mouse Events Keyboard Events Load Events Timing Events Manage Events JS Conventions JS Style Guide JS Best Practices JS Mistakes JS Performance JS References JS Keywords Reference JS Keywords Reserved JS Operator Reference JS Operator Precedence JS Versions JS Versions JS 2026 JS 2025 JS 2024 JS 2023 JS 2022 JS 2021 JS 2020 JS 2019 JS 2018 JS 2017 JS 2016 JS 2015 (ES6) JS 2009 (ES5) JS 1999 (ES3) JS IE / Edge JS HistoryJS Advanced
JS Functions Function Definitions Function this Function Invocation Function IIFE Function Call Function Apply Function Bind Function Closures Function Reference JS Objects Object Definitions Object Constructors Object this Object Destructuring Object Prototypes Object Iterations Object Management Object Get / Set Object Protection Object Reference JS Classes JS Classes JS Class Inheritance JS Class Static JS Asynchronous Control Flow Callbacks Asynchronous Promises Async/Await Reference JS Modules Modules Intro Modules Export Modules Import Modules Namespace Modules Dynamic JS Meta & Proxy Meta Programming Meta Reflect Meta Proxy Meta Reference JS Typed Arrays Typed Arrays Typed Methods Typed Reference Array Buffers DataViews JS Atomics JS HTML DOM DOM Intro DOM Methods DOM Document DOM Elements DOM HTML DOM Forms DOM CSS DOM Animations DOM Events DOM Event Listener DOM Navigation DOM Nodes DOM Collections DOM Node Lists JS Windows JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies JS Web APIs Web APIs Intro Fetch API Geolocation API Web History API Web Pointer API Web Storage API Validation API Web Worker API JS AJAX AJAX Intro AJAX XMLHttp AJAX Request AJAX Response AJAX XML File AJAX PHP AJAX ASP AJAX Database AJAX Applications AJAX Examples JS JSON JSON Intro JSON Syntax JSON vs XML JSON Data Types JSON Parse JSON Stringify JSON Objects JSON Arrays JSON Server JSON PHP JSON HTML JSON JSONP JS jQuery jQuery Selectors jQuery HTML jQuery CSS jQuery DOM JS Graphics JS Graphics JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js JS Examples JS Examples JS HTML DOM JS HTML Input JS HTML Objects JS HTML Events JS Browser JS Editor JS Exercises JS Quiz JS Website JS Syllabus JS Study Plan JS Interview Prep JS Bootcamp JS Certificate JS Reference JavaScript Array Sort ❮ Previous Next ❯ Alphabetic SortArray sort() Array reverse() Array toSorted() Array toReversed() Sorting Objects | Numeric SortNumeric Sort Random Sort Math.min() Math.max() Home made Min() Home made Max() |
Complete JavaScript Array Reference
See Also:
Array Tutorial
Array Basic Methods
Array Search Methods
Array Iteration Methods
Array Reference
Sorting an Array
The sort() method sorts an array alphabetically:
Example
const fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); Try it Yourself »Reversing an Array
The reverse() method reverses the elements in an array:
Example
const fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.reverse(); Try it Yourself »By combining sort() and reverse(), you can sort an array in descending order:
Example
const fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); fruits.reverse(); Try it Yourself »JavaScript Array toSorted() Method
ES2023 added the toSorted() method as a safe way to sort an array without altering the original array.
The difference between toSorted() and sort() is that the first method creates a new array, keeping the original array unchanged, while the last method alters the original array.
Example
const months = ["Jan", "Feb", "Mar", "Apr"]; const sorted = months.toSorted(); Try it Yourself »JavaScript Array toReversed() Method
ES2023 added the toReversed() method as a safe way to reverse an array without altering the original array.
The difference between toReversed() and reverse() is that the first method creates a new array, keeping the original array unchanged, while the last method alters the original array.
Example
const months = ["Jan", "Feb", "Mar", "Apr"]; const reversed = months.toReversed(); Try it Yourself »Numeric Sort
By default, the sort() function sorts values as strings.
This works well for strings ("Apple" comes before "Banana").
If numbers are sorted as strings, "25" is bigger than "100", because "2" is bigger than "1".
Because of this, the sort() method will produce incorrect result when sorting numbers.
You can fix this by providing a compare function:
Example
const points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b}); Try it Yourself »Use the same trick to sort an array descending:
Example
const points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a}); Try it Yourself »The Compare Function
The purpose of the compare function is to define an alternative sort order.
The compare function should return a negative, zero, or positive value, depending on the arguments:
function(a, b){return a - b}When the sort() function compares two values, it sends the values to the compare function, and sorts the values according to the returned (negative, zero, positive) value.
If the result is negative, a is sorted before b.
If the result is positive, b is sorted before a.
If the result is 0, no changes are done with the sort order of the two values.
Example:
The compare function compares all the values in the array, two values at a time (a, b).
When comparing 40 and 100, the sort() method calls the compare function(40, 100).
The function calculates 40 - 100 (a - b), and since the result is negative (-60), the sort function will sort 40 as a value lower than 100.
You can use this code snippet to experiment with numerically and alphabetically sorting:
<button onclick="myFunction1()">Sort Alphabetically</button><button onclick="myFunction2()">Sort Numerically</button><p id="demo"></p> <script>const points = [40, 100, 1, 5, 25, 10]; document.getElementById("demo").innerHTML = points;function myFunction1() { points.sort(); document.getElementById("demo").innerHTML = points;}function myFunction2() { points.sort(function(a, b){return a - b}); document.getElementById("demo").innerHTML = points;} </script> Try it Yourself »Sorting an Array in Random Order
Using a sort function, like explained above, you can sort an numeric array in random order
Example
const points = [40, 100, 1, 5, 25, 10]; points.sort(function(){return 0.5 - Math.random()});Try it Yourself »
The Fisher Yates Method
The points.sort() method in the example above is not accurate. It will favor some numbers over others.
The most popular correct method, is called the Fisher Yates shuffle, and was introduced in data science as early as 1938!
In JavaScript the method can be translated to this:
Example
const points = [40, 100, 1, 5, 25, 10]; for (let i = points.length -1; i > 0; i--) { let j = Math.floor(Math.random() * (i+1)); let k = points[i]; points[i] = points[j]; points[j] = k;}Try it Yourself »
Find the Lowest (or Highest) Array Value
There are no built-in functions for finding the max or min value in an array.
To find the lowest or highest value you have 3 options:
- Sort the array and read the first or last element
- Use Math.min() or Math.max()
- Write a home made function
Find Min or Max with sort()
After you have sorted an array, you can use the index to obtain the highest and lowest values.
Sort Ascending:
Example
const points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b}); // now points[0] contains the lowest value // and points[points.length-1] contains the highest value Try it Yourself »Sort Descending:
Example
const points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a}); // now points[0] contains the highest value // and points[points.length-1] contains the lowest value Try it Yourself »Note
Sorting a whole array is a very inefficient method if you only want to find the highest (or lowest) value.
Using Math.min() on an Array
You can use Math.min.apply to find the lowest number in an array:
Example
function myArrayMin(arr) { return Math.min.apply(null, arr);}Try it Yourself »
Math.min.apply(null, [1, 2, 3]) is equivalent to Math.min(1, 2, 3).
Using Math.max() on an Array
You can use Math.max.apply to find the highest number in an array:
Example
function myArrayMax(arr) { return Math.max.apply(null, arr);}Try it Yourself »
Math.max.apply(null, [1, 2, 3]) is equivalent to Math.max(1, 2, 3).
JavaScript Array Minimum Method
There is no built-in function for finding the lowest value in a JavaScript array.
The fastest code to find the lowest number is to use a home made method.
This function loops through an array comparing each value with the lowest value found:
Example (Find Min)
function myArrayMin(arr) { let len = arr.length; let min = Infinity; while (len--) { if (arr[len] < min) { min = arr[len]; } } return min;}Try it Yourself »
JavaScript Array Maximum Method
There is no built-in function for finding the highest value in a JavaScript array.
The fastest code to find the highest number is to use a home made method.
This function loops through an array comparing each value with the highest value found:
Example (Find Max)
function myArrayMax(arr) { let len = arr.length; let max = -Infinity; while (len--) { if (arr[len] > max) { max = arr[len]; } } return max;}Try it Yourself »
Sorting Object Arrays
JavaScript arrays often contain objects:
Example
const cars = [ {type:"Volvo", year:2016}, {type:"Saab", year:2001}, {type:"BMW", year:2010}];Even if objects have properties of different data types, the sort() method can be used to sort the array.
The solution is to write a compare function to compare the property values:
Example
cars.sort(function(a, b){return a.year - b.year}); Try it Yourself »Comparing string properties is a little more complex:
Example
cars.sort(function(a, b){ let x = a.type.toLowerCase(); let y = b.type.toLowerCase(); if (x < y) {return -1;} if (x > y) {return 1;} return 0;}); Try it Yourself »Stable Array sort()
ES2019 revised the Array sort() method.
Before 2019, the specification allowed unstable sorting algorithms such as QuickSort.
After ES2019, browsers must use a stable sorting algorithm:
When sorting elements on a value, the elements must keep their relative position to other elements with the same value.
Example
const myArr = [ {name:"X00",price:100 }, {name:"X01",price:100 }, {name:"X02",price:100 }, {name:"X03",price:100 }, {name:"X04",price:110 }, {name:"X05",price:110 }, {name:"X06",price:110 }, {name:"X07",price:110 } ]; Try it Yourself »In the example above, when sorting on price, the result is not allowed to come out with the names in an other relative position like this:
X01 100 X03 100 X00 100 X02 100 X05 110 X04 110 X06 110 X07 110Complete JavaScript Reference
For a complete reference to all JavaScript properties and methods, with full descriptions and many examples, go to:
W3Schools' Full JavaScript Reference.
The reference inludes all JavaScript updates from 1999 to 2025.
❮ Previous Next ❯ ★ +1 Sign in to track progress
COLOR PICKER
REMOVE ADS
PLUS SPACES GET CERTIFIED FOR TEACHERS FOR BUSINESS CONTACT US ×Contact Sales
If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:[email protected]
Report Error
If you want to report an error, or if you want to make a suggestion, send us an e-mail:[email protected]
Top Tutorials
HTML Tutorial CSS Tutorial JavaScript Tutorial How To Tutorial SQL Tutorial Python Tutorial W3.CSS Tutorial Bootstrap Tutorial PHP Tutorial Java Tutorial C++ Tutorial jQuery TutorialTop References
HTML Reference CSS Reference JavaScript Reference SQL Reference Python Reference W3.CSS Reference Bootstrap Reference PHP Reference HTML Colors Java Reference AngularJS Reference jQuery ReferenceTop Examples
HTML Examples CSS Examples JavaScript Examples How To Examples SQL Examples Python Examples W3.CSS Examples Bootstrap Examples PHP Examples Java Examples XML Examples jQuery ExamplesGet Certified
HTML Certificate CSS Certificate JavaScript Certificate Front End Certificate SQL Certificate Python Certificate PHP Certificate jQuery Certificate Java Certificate C++ Certificate C# Certificate XML Certificate FORUM ABOUT ACADEMY W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookies and privacy policy. Copyright 1999-2025 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS. -->Tag » How To Sort An Array In Java
-
rt() In Java With Examples - GeeksforGeeks
-
How To Sort An Array In Java - Javatpoint
-
How To Sort An Array In Java - Tutorial With Examples
-
How To Sort An Array In Java - Video & Lesson Transcript
-
What Is Sort Array In Java: Everything You Need To Know | Simplilearn
-
Java Sort Array – How To Reverse An Array In Ascending Or ...
-
Sort An Array In Java - Stack Overflow
-
How To Sort An Array In Descending Order In Java? Example Tutorial
-
How To Sort An Array In Java Without Using The Sort() Method
-
How To Sort An Array In Java - Linux Hint
-
How To Use The rt() Method In Java
-
Sort An Array - LeetCode
-
Arrays (Java Platform SE 7 ) - Oracle Help Center
-
How To Sort An Array In Java - Code |Interviewkickstart