From 829eb0fe1f61611b4638998090cac2d7705564b8 Mon Sep 17 00:00:00 2001 From: Douglas Barone Date: Wed, 22 Jun 2022 11:46:18 +0000 Subject: [PATCH] Improve distributedCopy --- server/src/utils/distributedCopy.js | 23 ++++++++++------------- web/src/views/AccessPoints/clients.vue | 7 +++++-- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/server/src/utils/distributedCopy.js b/server/src/utils/distributedCopy.js index 101c6e3..0927c7b 100644 --- a/server/src/utils/distributedCopy.js +++ b/server/src/utils/distributedCopy.js @@ -2,24 +2,21 @@ * Retrieve a fixed number of elements from an array, evenly distributed but * always including the first and last elements. * - * @param {Array} items - The array to operate on. + * @param {Array} originalArray - The array to operate on. * @param {number} take - The number of elements to extract. * @returns {Array} */ -export function distributedCopy(items, take) { - if (items.length < take) { - return items - } +export function distributedCopy(originalArray, take) { + if (originalArray.length <= take) return [...originalArray] - const elements = [items[0]] - const totalItems = items.length - 2 - const interval = Math.floor(totalItems / (take - 2)) + const newArray = [originalArray[0]] - for (let i = 1; i < take - 1; i++) { - elements.push(items[i * interval]) - } + const interval = (originalArray.length - 2) / (take - 2) - elements.push(items[items.length - 1]) + for (let i = 1; i < take - 1; i++) + newArray.push(originalArray[Math.floor(interval * i)]) - return elements + newArray.push(originalArray[originalArray.length - 1]) + + return newArray } diff --git a/web/src/views/AccessPoints/clients.vue b/web/src/views/AccessPoints/clients.vue index c5ef1fe..afefc3f 100644 --- a/web/src/views/AccessPoints/clients.vue +++ b/web/src/views/AccessPoints/clients.vue @@ -22,7 +22,10 @@
- + + mdi-account-group + {{ accessPoint.clients }} clientes conectados +