Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
var courseLists = [
    { 
        "name": "My Courses",
        "courses": [
            {
                "id": 511019,
                "title": "React for Beginners",
                "covers": [
                    { width: 150, height: 200, url: "http://placehold.it/150x200"},
                    { width: 200, height: 200, url: "http://placehold.it/200x200"},
                    { width: 300, height: 200, url: "http://placehold.it/300x200"}
                ],
                "tags": [{ id: 1, name: "JavaScript" }],
                "rating": 5
            },
            {
                "id": 511020,
                "title": "Front-End automat workflow",
                "covers": [
                    { width: 150, height: 200, url: "http://placehold.it/150x200"},
                    { width: 200, height: 200, url: "http://placehold.it/200x200"},
                    { width: 300, height: 200, url: "http://placehold.it/300x200"}
                ],
                "tags": [{ "id": 2, "name": "gulp" }, { "id": 3, "name": "webpack" }],
                "rating": 5
            }
        ]
    },
    {
        "name": "New Release",
        "courses": [
            {
                "id": 511022,
                "title": "Vue2 for Beginners",
                "covers": [
                    { width: 150, height: 200, url: "http://placehold.it/150x200"},
                    { width: 200, height: 200, url: "http://placehold.it/200x200"},
                    { width: 300, height: 200, url: "http://placehold.it/300x200"}
                ],
                "tags": [{ id: 1, name: "JavaScript" }],
                "rating": 5
            },
            {
                "id": 511023,
                "title": "Angular2 for Beginners",
                "covers": [
                    { width: 150, height: 200, url: "http://placehold.it/150x200"},
                    { width: 200, height: 200, url: "http://placehold.it/200x200"},
                    { width: 300, height: 200, url: "http://placehold.it/300x200"}
                ],
                "tags": [{ id: 1, name: "JavaScript" }],
                "rating": 5
            }
        ]
    }
];
Array.prototype.concatAll = function() {
  var result = []
  this.forEach(item => {
    result.push(...item);
  })
  return result;
}
var result = courseLists
                .map(list => list.courses
                    .map(course => course.covers
                          .filter(cover => cover.width === 150)
                          .map(item => ({
                            id: course.id,
                            title: course.title,
                            cover: item.url
                          }))
          ).concatAll()
        ).concatAll()
console.log(result);
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers