当前位置:Gxlcms > 数据库问题 > [Javascript] bukld 'SQL' like object tree

[Javascript] bukld 'SQL' like object tree

时间:2021-07-01 10:21:17 帮助过:2人阅读

"name": "New Releases", "videos": [ { "id": 65432445, "title": "The Chamber", "time": 32432, "boxart": "http://cdn-0.nflximg.com/images/2891/TheChamber130.jpg" }, { "id": 675465, "title": "Fracture", "time": 3534543, "boxart": "http://cdn-0.nflximg.com/images/2891/Fracture120.jpg" } ] }, { "name": "Thrillers", "videos": [ { "id": 70111470, "title": "Die Hard", "time": 645243, "boxart": "http://cdn-0.nflximg.com/images/2891/DieHard150.jpg" }, { "id": 654356453, "title": "Bad Boys", "time": 984934, "boxart": "http://cdn-0.nflximg.com/images/2891/BadBoys140.jpg" } ] } ]

 

Note: please make sure when creating objects (both lists and videos) that you add properties in the same order as above. This doesn‘t impact the correctness of your code, but the verifier expects properties to be created in this order.

function() {
    var lists = [
            {
                "id": 5434364,
                "name": "New Releases"
            },
            {
                "id": 65456475,
                name: "Thrillers"
            }
        ],
        videos = [
            {
                "listId": 5434364,
                "id": 65432445,
                "title": "The Chamber"
            },
            {
                "listId": 5434364,
                "id": 675465,
                "title": "Fracture"
            },
            {
                "listId": 65456475,
                "id": 70111470,
                "title": "Die Hard"
            },
            {
                "listId": 65456475,
                "id": 654356453,
                "title": "Bad Boys"
            }
        ],
        boxarts = [
            { videoId: 65432445, width: 130, height:200, url:"http://cdn-0.nflximg.com/images/2891/TheChamber130.jpg" },
            { videoId: 65432445, width: 200, height:200, url:"http://cdn-0.nflximg.com/images/2891/TheChamber200.jpg" },
            { videoId: 675465, width: 200, height:200, url:"http://cdn-0.nflximg.com/images/2891/Fracture200.jpg" },
            { videoId: 675465, width: 120, height:200, url:"http://cdn-0.nflximg.com/images/2891/Fracture120.jpg" },
            { videoId: 675465, width: 300, height:200, url:"http://cdn-0.nflximg.com/images/2891/Fracture300.jpg" },
            { videoId: 70111470, width: 150, height:200, url:"http://cdn-0.nflximg.com/images/2891/DieHard150.jpg" },
            { videoId: 70111470, width: 200, height:200, url:"http://cdn-0.nflximg.com/images/2891/DieHard200.jpg" },
            { videoId: 654356453, width: 200, height:200, url:"http://cdn-0.nflximg.com/images/2891/BadBoys200.jpg" },
            { videoId: 654356453, width: 140, height:200, url:"http://cdn-0.nflximg.com/images/2891/BadBoys140.jpg" }
        ],
        bookmarks = [
            { videoId: 65432445, time: 32432 },
            { videoId: 675465, time: 3534543 },
            { videoId: 70111470, time: 645243 },
            { videoId: 654356453, time: 984934 }
        ];

    return lists.map(function(list) {
        return {
            name: list.name,
            videos:
                videos.
                    filter(function(video) {
                        return video.listId === list.id;
                    }).
                    concatMap(function(video) {
                        return Array.zip(
                            bookmarks.filter(function(bookmark) {
                                return bookmark.videoId === video.id;
                            }),
                            boxarts.filter(function(boxart) {
                                return boxart.videoId === video.id;
                            }).
                            reduce(function(acc,curr) {
                                return acc.width * acc.height < curr.width * curr.height ? acc : curr;
                            }),
                            function(bookmark, boxart) {
                                return { id: video.id, title: video.title, time: bookmark.time, boxart: boxart.url };
                            });
                })
        };
    });

}

 

[Javascript] bukld 'SQL' like object tree

标签:

人气教程排行