Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
From a list of IDs with empty and non-empty values, retrieve specific ID records in JavaScript
When working with arrays of objects containing IDs, you often need to filter records based on specific ID values. JavaScript's filter() method provides an efficient way to retrieve all objects matching a particular ID, even when the array contains empty or null ID values.
Sample Data
Let's work with the following array that contains both valid and empty ID values:
var details = [
{id: 101, name: "John", age: 21},
{id: 111, name: "David", age: 24},
{id: 1, name: "Mike", age: 22},
{id: "", name: "Sam", age: 20},
{id: 1, name: "Carol", age: 23},
{id: null, name: "Robert", age: 25},
{id: 1, name: "Adam", age: 24},
{id: "", name: "Chris", age: 23}
];
console.log("Original array:");
console.log(details);
Original array:
[
{ id: 101, name: 'John', age: 21 },
{ id: 111, name: 'David', age: 24 },
{ id: 1, name: 'Mike', age: 22 },
{ id: '', name: 'Sam', age: 20 },
{ id: 1, name: 'Carol', age: 23 },
{ id: null, name: 'Robert', age: 25 },
{ id: 1, name: 'Adam', age: 24 },
{ id: '', name: 'Chris', age: 23 }
]
Using filter() to Retrieve Specific ID Records
You can use the filter() method to retrieve all records that match a specific ID:
var details = [
{id: 101, name: "John", age: 21},
{id: 111, name: "David", age: 24},
{id: 1, name: "Mike", age: 22},
{id: "", name: "Sam", age: 20},
{id: 1, name: "Carol", age: 23},
{id: null, name: "Robert", age: 25},
{id: 1, name: "Adam", age: 24},
{id: "", name: "Chris", age: 23}
];
// Filter records with ID = 1
var getIdWithValue1 = details.filter(obj => obj.id === 1);
console.log("Records with ID = 1:");
console.log(getIdWithValue1);
Records with ID = 1:
[
{ id: 1, name: 'Mike', age: 22 },
{ id: 1, name: 'Carol', age: 23 },
{ id: 1, name: 'Adam', age: 24 }
]
Filtering Different ID Types
You can also filter for empty strings, null values, or specific numeric IDs:
var details = [
{id: 101, name: "John", age: 21},
{id: 111, name: "David", age: 24},
{id: 1, name: "Mike", age: 22},
{id: "", name: "Sam", age: 20},
{id: 1, name: "Carol", age: 23},
{id: null, name: "Robert", age: 25},
{id: 1, name: "Adam", age: 24},
{id: "", name: "Chris", age: 23}
];
// Filter records with empty string IDs
var emptyIds = details.filter(obj => obj.id === "");
console.log("Records with empty ID:");
console.log(emptyIds);
// Filter records with null IDs
var nullIds = details.filter(obj => obj.id === null);
console.log("Records with null ID:");
console.log(nullIds);
// Filter records with ID = 101
var specificId = details.filter(obj => obj.id === 101);
console.log("Records with ID = 101:");
console.log(specificId);
Records with empty ID:
[
{ id: '', name: 'Sam', age: 20 },
{ id: '', name: 'Chris', age: 23 }
]
Records with null ID:
[
{ id: null, name: 'Robert', age: 25 }
]
Records with ID = 101:
[
{ id: 101, name: 'John', age: 21 }
]
Filtering Non-Empty IDs
To get all records that have valid (non-empty, non-null) IDs:
var details = [
{id: 101, name: "John", age: 21},
{id: 111, name: "David", age: 24},
{id: 1, name: "Mike", age: 22},
{id: "", name: "Sam", age: 20},
{id: 1, name: "Carol", age: 23},
{id: null, name: "Robert", age: 25},
{id: 1, name: "Adam", age: 24},
{id: "", name: "Chris", age: 23}
];
// Filter records with valid (non-empty, non-null) IDs
var validIds = details.filter(obj => obj.id !== "" && obj.id !== null);
console.log("Records with valid IDs:");
console.log(validIds);
Records with valid IDs:
[
{ id: 101, name: 'John', age: 21 },
{ id: 111, name: 'David', age: 24 },
{ id: 1, name: 'Mike', age: 22 },
{ id: 1, name: 'Carol', age: 23 },
{ id: 1, name: 'Adam', age: 24 }
]
Conclusion
The filter() method is the most efficient way to retrieve specific ID records from arrays. Use strict equality (===) to match exact values, including empty strings and null values.
