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!