
- 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
Sort array based on presence of fields in objects JavaScript
Let’s say we have the following array of objects −
const people = [{ firstName: 'Ram', id: 301 }, { firstName: 'Shyam', lastName: 'Singh', id: 1016 }, { firstName: 'Dinesh', lastName: 'Lamba', id: 231 }, { id: 341 }, { firstName: 'Karan', lastName: 'Malhotra', id: 441 }, { id: 8881 }, { firstName: 'Vivek', id: 301 }];
We are required to sort this array so that the object with both firstName and lastName property appears first then the objects with firstName or lastName and lastly the objects with neither firstName nor lastName.
So, the code for this will be −
Example
const people = [{ firstName: 'Ram', id: 301 }, { firstName: 'Shyam', lastName: 'Singh', id: 1016 }, { firstName: 'Dinesh', lastName: 'Lamba', id: 231 }, { id: 341 }, { firstName: 'Karan', lastName: 'Malhotra', id: 441 }, { id: 8881 }, { firstName: 'Vivek', id: 301 }]; const sorter = (a, b) => { if(a.firstName && a.lastName){ return -1; }else if(b.firstName || b.lastName){ return 1; }else{ return -1; }; }; people.sort(sorter); console.log(people);
Output
The output in the console will be −
[ { firstName: 'Karan', lastName: 'Malhotra', id: 441 }, { firstName: 'Dinesh', lastName: 'Lamba', id: 231 }, { firstName: 'Shyam', lastName: 'Singh', id: 1016 }, { firstName: 'Ram', id: 301 }, { firstName: 'Vivek', id: 301 }, { id: 8881 }, { id: 341 } ]
- Related Articles
- Sort array based on another array in JavaScript
- How to sort an array of objects based on the length of a nested array in JavaScript
- Creating an array of objects based on another array of objects JavaScript
- Sort object array based on another array of keys - JavaScript
- Filter an array containing objects based on another array containing objects in JavaScript
- Sort array based on min and max date in JavaScript?
- JavaScript Separate objects based on properties
- Sort Array of objects by two properties in JavaScript
- Grouping objects based on key property in JavaScript
- JavaScript Bubble sort for objects in an array
- Sort array of objects by string property value in JavaScript
- Sort an array of objects by multiple properties in JavaScript
- Sort array of objects by string property value - JavaScript
- Using methods of array on array of JavaScript objects?
- Filter array based on another array in JavaScript

Advertisements