How to resolve TypeError: Cannot read property ‘length’ of undefined

I will explain how to resolve a common JavaScript error: TypeError: Cannot read property ‘length’ of undefined. This error occurs when you try to access the length property of a variable that is undefined, meaning it has no value assigned to it. For example, if you have a function that takes an array as an argument and returns its length, but you pass an undefined variable instead of an array, you will get this error.

function getLength(array) {
return array.length;
}

let myArray; // undefined
console.log(getLength(myArray)); // TypeError: Cannot read property 'length' of undefined

To fix this error, you need to make sure that the variable you are trying to access the length property of is defined and has a value. There are several ways to do this, depending on your situation and preference. Here are some possible solutions:

  • Use a default parameter in your function definition. This way, if you don’t pass an argument to the function, it will use a default value instead of undefined. For example:
    function getLength(array = []) {
    
    return array.length;
    
    }
    
    let myArray; // undefined
    
    console.log(getLength(myArray)); // 0
    
    console.log(getLength([1, 2, 3])); // 3
  • Use a conditional statement to check if the variable is defined before accessing its length property. For example:
function getLength(array) {

if (array !== undefined) {

return array.length;

} else {

return 0;

}

}

let myArray; // undefined

console.log(getLength(myArray)); // 0

console.log(getLength([1, 2, 3])); // 3
  • Use the optional chaining operator (?.) to access the length property only if the variable is not null or undefined. This operator returns undefined if the variable is null or undefined, instead of throwing an error. For example:
    function getLength(array) {
    
    return array?.length;
    
    }
    
    let myArray; // undefined
    
    console.log(getLength(myArray)); // undefined
    
    console.log(getLength([1, 2, 3])); // 3

    I hope I helped you understand how to resolve TypeError: Cannot read property ‘length’ of undefined in JavaScript. If you have any questions or feedback, please leave a comment below.

Leave a Reply

Your email address will not be published. Required fields are marked *