-1
私はJavaScriptの関数型プログラミングの頭を抱かせようとしています。私の目標は、width=150
とheight=200
のオブジェクトボックスアイテムを取得することです。ネストされたマップとフィルターのメソッド
Console.log(arr)
ディスプレイ
[ [ [ [Object] ], [ [Object] ] ],
[ [ [Object] ], [ [Object] ] ] ]
私は 実際の値を印刷することができませんなぜ私はわかりません。 ConcatAll
メソッドを使用して配列を平坦化します。私は機能プログラミングに関するreactivex.io
チュートリアルを通して働いています。
Array.prototype.concatAll = function() {
var results = [];
this.forEach(function(subArray) {
\t subArray.forEach(function(item){
\t results.push(item);
});
});
return results;
};
var movieLists = [
\t \t {
\t \t \t name: "Instant Queue",
\t \t \t videos : [
\t \t \t \t {
\t \t \t \t \t "id": 70111470,
\t \t \t \t \t "title": "Die Hard",
\t \t \t \t \t "boxarts": [
\t \t \t \t \t \t { width: 150, height: 200, url: "http://cdn-0.nflximg.com/images/2891/DieHard150.jpg" },
\t \t \t \t \t \t { width: 200, height: 200, url: "http://cdn-0.nflximg.com/images/2891/DieHard200.jpg" }
\t \t \t \t \t ],
\t \t \t \t \t "url": "http://api.netflix.com/catalog/titles/movies/70111470",
\t \t \t \t \t "rating": 4.0,
\t \t \t \t \t "bookmark": []
\t \t \t \t },
\t \t \t \t {
\t \t \t \t \t "id": 654356453,
\t \t \t \t \t "title": "Bad Boys",
\t \t \t \t \t "boxarts": [
\t \t \t \t \t \t { width: 200, height: 200, url: "http://cdn-0.nflximg.com/images/2891/BadBoys200.jpg" },
\t \t \t \t \t \t { width: 150, height: 200, url: "http://cdn-0.nflximg.com/images/2891/BadBoys150.jpg" }
\t \t \t \t \t ],
\t \t \t \t \t "url": "http://api.netflix.com/catalog/titles/movies/70111470",
\t \t \t \t \t "rating": 5.0,
\t \t \t \t \t "bookmark": [{ id: 432534, time: 65876586 }]
\t \t \t \t }
\t \t \t ]
\t \t },
\t \t {
\t \t \t name: "New Releases",
\t \t \t videos: [
\t \t \t \t {
\t \t \t \t \t "id": 65432445,
\t \t \t \t \t "title": "The Chamber",
\t \t \t \t \t "boxarts": [
\t \t \t \t \t \t { width: 150, height: 200, url: "http://cdn-0.nflximg.com/images/2891/TheChamber150.jpg" },
\t \t \t \t \t \t { width: 200, height: 200, url: "http://cdn-0.nflximg.com/images/2891/TheChamber200.jpg" }
\t \t \t \t \t ],
\t \t \t \t \t "url": "http://api.netflix.com/catalog/titles/movies/70111470",
\t \t \t \t \t "rating": 4.0,
\t \t \t \t \t "bookmark": []
\t \t \t \t },
\t \t \t \t {
\t \t \t \t \t "id": 675465,
\t \t \t \t \t "title": "Fracture",
\t \t \t \t \t "boxarts": [
\t \t \t \t \t \t { width: 200, height: 200, url: "http://cdn-0.nflximg.com/images/2891/Fracture200.jpg" },
\t \t \t \t \t \t { width: 150, height: 200, url: "http://cdn-0.nflximg.com/images/2891/Fracture150.jpg" },
\t \t \t \t \t \t { width: 300, height: 200, url: "http://cdn-0.nflximg.com/images/2891/Fracture300.jpg" }
\t \t \t \t \t ],
\t \t \t \t \t "url": "http://api.netflix.com/catalog/titles/movies/70111470",
\t \t \t \t \t "rating": 5.0,
\t \t \t \t \t "bookmark": [{ id: 432534, time: 65876586 }]
\t \t \t \t }
\t \t \t ]
\t \t }
\t ];
var arr = movieLists.map(function(movieList) {
\t return movieList.videos.map(function(video) {
\t \t return video.boxarts.filter(function(boxart) {
\t \t \t return boxart.width === 150;
\t \t });
\t });
});
console.log(arr);
* "しかし、私のコードは単語オブジェクトを持つ配列を返しています" *どのような単語オブジェクトですか?実際に表示されたコードが機能します。あなたは 'console.log()'を使用しているときにも動作すると言っています。だから、「印刷」できないということはどういう意味ですか?あなたの質問を編集して、間違っていることをより明確に説明し、間違った動作に関連するコードを追加してください。 (concatAll()は何のために呼び出されていないようです...) – nnnnnn
あなたのコードは、あなたがプリントで何を意味するのでしょうか?あなたはdocument.writeを意味しましたか? –
console.log(arr)は[[[[オブジェクト]]、[[オブジェクト]]、[[[オブジェクト]]、[[オブジェクト]]]]を表示しています。 – M00