Check if an array has length in JavaScript & TypeScript
Written by Tom Wells on
This simple function allows you to check if an array has a length, returning a boolean (true or false). This is useful to prevent using if
's like this:
const array = ['anitem']
if (array && array.length !== 0) {
// Do something
}
Why use a function for this? The main benefit is adding type checking to the input, but if you're doing a lot of array length checking in your code this is a nice helper to achieve that in many places.
The function
This is the function in JavaScript:
const hasLength = (arr) => {
const isArray = Array.isArray(array)
return isArray && arr.length !== 0
}
And in TypeScript:
const hasLength = (arr: any[]): boolean => {
return arr && arr.length !== 0
}
And how to use it:
// Arrays (or not)
const array = ['anitem']
const empty = []
const string = 'String'
const arrayHasLength = hasLength(array) // true
const arrayEmpty = hasLength(empty) // false
const arrayString = hasLength(string) // false, or error in TypeScript
How it works
This is obviously a very simple function, but to break it down:
- The function accepts a single argument
arr
which is an array ofany
type (in TypeScript). - First, the function checks the
arr
is an array (when using JavaScript). - Then, depending on if it's an array or not, it will check the length is more than 0.
- Finally, if both conditions are met, it will return
true
. Otherwise, it will returnfalse
.
Why are we checking that the arr
argument is an array in JavaScript and not TypeScript? Well, TypeScript will enforce the type Array
on the argument when using TS in your project. However, with JavaScript, there is no such enforcement so String
data types would also work which is undesirable behaviour in this case.
Check out our JavaScript category for more JavaScript code snippets and tutorials on pipinghot.dev!