
- Javascript Basics Tutorial
- Javascript - Home
- Javascript - Overview
- Javascript - Syntax
- Javascript - Enabling
- Javascript - Placement
- Javascript - Variables
- Javascript - Operators
- Javascript - If...Else
- Javascript - Switch Case
- Javascript - While Loop
- Javascript - For Loop
- Javascript - For...in
- Javascript - Loop Control
- Javascript - Functions
- Javascript - Events
- Javascript - Cookies
- Javascript - Page Redirect
- Javascript - Dialog Boxes
- Javascript - Void Keyword
- Javascript - Page Printing
- JavaScript Objects
- Javascript - Objects
- Javascript - Number
- Javascript - Boolean
- Javascript - Strings
- Javascript - Arrays
- Javascript - Date
- Javascript - Math
- Javascript - RegExp
- Javascript - HTML DOM
- JavaScript Advanced
- Javascript - Error Handling
- Javascript - Validations
- Javascript - Animation
- Javascript - Multimedia
- Javascript - Debugging
- Javascript - Image Map
- Javascript - Browsers
- JavaScript Useful Resources
- Javascript - Questions And Answers
- Javascript - Quick Guide
- Javascript - Functions
- Javascript - Resources
Sorting an array of objects by an array JavaScript
Suppose, we have an array of objects and an array of strings like this −
Example
const orders = [ { status: "pending"}, { status: "received" }, { status: "sent" }, { status: "pending" } ]; const statuses = ["pending", "sent", "received"];
We are required to write a JavaScript function that takes in two such arrays. The purpose of the function should be to sort the orders array according to the elements of the statuses array.
Therefore, objects in the first array should be arranged according to the strings in the second array.
Example
const orders = [ { status: "pending" }, { status: "received" }, { status: "sent" }, { status: "pending" } ]; const statuses = ["pending", "sent", "received"]; const sortByRef = (orders, statuses) => { const sorter = (a, b) => { return statuses.indexOf(a.status) - statuses.indexOf(b.status); }; orders.sort(sorter); }; sortByRef(orders, statuses); console.log(orders);
Output
And the output in the console will be −
[ { status: 'pending' }, { status: 'pending' }, { status: 'sent' }, { status: 'received' } ]
- Related Articles
- Sorting an array of objects by property values - JavaScript
- Sorting an array objects by property having null value in JavaScript
- Sorting an array by date in JavaScript
- Sorting an array by price in JavaScript
- Sorting an array of binary values - JavaScript
- Alternative sorting of an array in JavaScript
- Sorting an array object by property having falsy value - JavaScript
- Extract unique objects by attribute from an array of objects in JavaScript
- Sorting only a part of an array JavaScript
- Sort an array of objects by multiple properties in JavaScript
- Creating an array of objects based on another array of objects JavaScript
- Sorting or Arranging an Array with standard array values - JavaScript
- How to group an array of objects by key in JavaScript
- JavaScript array sorting by level
- Sorting an array that contains undefined in JavaScript?

Advertisements