'use strict'; const config = require('config'); // pick {photoLimit} photos evenly distributed photos from a set with {photoTotal} photos, return array of indexes starting at 1 function pluckPhotos(photos, release, specifiedLimit) { const limit = specifiedLimit || config.media.limit; if (photos.length <= limit) { return photos; } const plucked = [1] .concat( Array.from({ length: limit }, (value, index) => Math.round((index + 1) * (photos.length / (limit)))), ); return Array.from(new Set(plucked)).map(photoIndex => photos[photoIndex - 1]); // remove duplicates, may happen when photo total and photo limit are close } module.exports = pluckPhotos;