У меня есть файл JS, который я использую для изучения JavaScript. Однако когда я запускаю concatAll, он говорит:
Uncaught TypeError: movieLists.map(...).concatAll is not a function
Файл Js:
console.log(tryFun());
Array.prototype.concatAll = function() {
var results = [];
this.forEach(function(subArray) {
results.push(subArray);
});
return results;
};
function tryFun() {
var movieLists = [
{
name: "New Releases",
videos: [
{
"id": 70111470,
"title": "Die Hard",
"boxart": "http://cdn-0.nflximg.com/images/2891/DieHard.jpg",
"uri": "http://api.netflix.com/catalog/titles/movies/70111470",
"rating": 4.0,
"bookmark": []
},
{
"id": 654356453,
"title": "Bad Boys",
"boxart": "http://cdn-0.nflximg.com/images/2891/BadBoys.jpg",
"uri": "http://api.netflix.com/catalog/titles/movies/70111470",
"rating": 5.0,
"bookmark": [{ id: 432534, time: 65876586 }]
}
]
},
{
name: "Dramas",
videos: [
{
"id": 65432445,
"title": "The Chamber",
"boxart": "http://cdn-0.nflximg.com/images/2891/TheChamber.jpg",
"uri": "http://api.netflix.com/catalog/titles/movies/70111470",
"rating": 4.0,
"bookmark": []
},
{
"id": 675465,
"title": "Fracture",
"boxart": "http://cdn-0.nflximg.com/images/2891/Fracture.jpg",
"uri": "http://api.netflix.com/catalog/titles/movies/70111470",
"rating": 5.0,
"bookmark": [{ id: 432534, time: 65876586 }]
}
]
}
];
return movieLists.map(movieList=>
movieList.videos.map(video=>video.id))
.concatAll();
}
Похоже, мне здесь не хватает какой-то хитрости. Спасибо, что заглянули в это. Не должен ли Javascript добавить функцию в ее прототип, который определен в начале файла?