// pseudocode for data parsing

directors = {}; // each entry contains {name: ..., movies: [], ratings: 0};
actors = {}; // each entry contains {name: ..., movies: []};
for (var i = 0; i < movies.length; i ++){
	let director = API_call_get_director_form_movie(movie);
	directors[director] += 1;
	directors[director].movies.push(movie);
	directors[director].rating += rating; // divide by numMovies for avg rating
	mainCast = API_call_get_cast(movie);
	for (var j = 0; j < mainCast.length; j ++){ 
		actors[mainCast[j]] += 1;
		actors[mainCast[j]].movies.push(movie);
		// accumulate rating too 
  }
}

Problems