Uncaught TypeError: mydata.filter is not a function

Пытаюсь отфильтровать массив let mydata. Выдает ошибку

Uncaught TypeError: mydata.filter is not a function. Что не так?

<script type="text/javascript">

    document.addEventListener("DOMContentLoaded", function(event){
        myFunction();
    });

    function myFunction(){
        let filterPar = urlVar[1] ;
        let mydata = JSON.parse(localStorage.getItem("mydata"));
        let newTable = mydata.filter(function (param){return param[2]=="filterPar";});
    }

</script>

Ответы (2 шт):

Автор решения: lijil
function myFunction(){
   let filterPar = urlVar[1] ;
   let mydata = JSON.parse(localStorage.getItem("mydata"));
   //mydata все-же объект {data: Array(46), errors: Array(0), meta: {…}}
   if( Array.isArray(mydata)){ 
   //Array.isArray вернет true если аргумент будет массивом
        console.log('mydata is array');
        var newTable = mydata.filter(function (param){return param[2]=="filterPar";});
   } else {
        console.log('mydata is object');
        var newTable = mydata
        .data //собственно тут массив, он внутри объекта mydata
        .filter(function (param){return param[2]=="filterPar";});
   }
}
document.addEventListener("DOMContentLoaded",myFunction);
//для краткости в addEventListener можно передать сразу myFunction
→ Ссылка
Автор решения: Светлана Свиридова

Сделай пожалуйста console.log( typeof mydata ) filter это метод работает для Array!

→ Ссылка