$zalando_codility_case2
by mtambulut
JavaScript
'use strict';
/* global CustomError, getLikedBrands, getTopBrandsForGender */
function solution(U, N) {
return new Promise((resolve, reject) => {
Promise.all([getLikedBrands(U.id), getTopBrandsForGender(U.gender)]).then(function(values){
var likedBrands = values[0];
var topBrandsForGender = values[1];
var result = [];
var count = N;
if(count < likedBrands.length){
result = result.concat(getBrandNameArray(likedBrands.slice(0, count)));
}else{
result = result.concat(getBrandNameArray(likedBrands));
count = count - likedBrands.length;
if(count < topBrandsForGender.length){
result = result.concat(getBrandNameArray(topBrandsForGender.slice(0, count)));
}else{
reject(new CustomError("Not enough data"));
}
}
resolve(result);
});
});
}
function getBrandNameArray(brandArray){
var result = [];
for(var i = 0; i < brandArray.length; i++){
result.push(brandArray[i].name);
}
return result;
}