Join & Concat Array of Strings
/!\ The performance improvement is NOT relevant if you use ts-node.
yarn add @aegenet/belt-array-string-join@^2.0.0
# or
npm i @aegenet/belt-array-string-join@^2.0.0
import { stringJoin, stringConcat } from '@aegenet/belt-array-string-join';
stringConcat(['Hello', ' ', 'Boris']); // 'Hello Boris'
stringConcat(['Hello', ' ', 'Boris', 1]); // ' Boris'
stringConcat(['Hello', ' ', 'Boris', 2]); // 'Boris'
stringJoin(['Hello', 'Boris'], ' '); // 'Hello Boris'
stringJoin(['Hello', 'Boris'], ' ', 1); // 'Boris'
┌─────────┬──────────────────┬────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────┬────────────┐ │ (index) │ name │ laps │ fastest │ slowest │ average │ p50 < │ p75 │ p90 │ ratio % │ duration │ ├─────────┼──────────────────┼────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────┼────────────┤ │ 0 │ 'stringJoin()' │ 100000 │ '199.91 ns' │ '1.94 ms' │ '398.16 ns' │ '300.05 ns' │ '300.05 ns' │ '400.07 ns' │ '0.00' │ '39.82 ms' │ │ 1 │ 'samples.join()' │ 100000 │ '399.95 ns' │ '814.70 μs' │ '506.69 ns' │ '400.07 ns' │ '499.96 ns' │ '599.98 ns' │ '49.98' │ '50.67 ms' │ └─────────┴──────────────────┴────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────┴────────────┘ ┌─────────┬───────────────────────┬────────┬─────────────┬───────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────┬────────────┐ │ (index) │ name │ laps │ fastest │ slowest │ average │ p50 < │ p75 │ p90 │ ratio % │ duration │ ├─────────┼───────────────────────┼────────┼─────────────┼───────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────┼────────────┤ │ 0 │ "stringJoin(' - ')" │ 100000 │ '199.91 ns' │ '1.27 ms' │ '479.39 ns' │ '300.05 ns' │ '300.05 ns' │ '399.95 ns' │ '0.00' │ '47.94 ms' │ │ 1 │ 'samples.join(" - ")' │ 100000 │ '399.95 ns' │ '1.21 ms' │ '487.71 ns' │ '499.96 ns' │ '499.96 ns' │ '500.08 ns' │ '49.99' │ '48.77 ms' │ └─────────┴───────────────────────┴────────┴─────────────┴───────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────┴────────────┘ ┌─────────┬─────────────────────────────────────┬────────┬─────────────┬───────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────┬────────────┐ │ (index) │ name │ laps │ fastest │ slowest │ average │ p50 < │ p75 │ p90 │ ratio % │ duration │ ├─────────┼─────────────────────────────────────┼────────┼─────────────┼───────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────┼────────────┤ │ 0 │ "stringJoin(samples, ' - ', 1, 5)" │ 100000 │ '199.91 ns' │ '1.39 ms' │ '372.70 ns' │ '300.05 ns' │ '300.05 ns' │ '399.95 ns' │ '0.00' │ '37.27 ms' │ │ 1 │ 'samples.slice(1, 5).join(" - ")' │ 100000 │ '299.93 ns' │ '1.50 ms' │ '563.11 ns' │ '400.07 ns' │ '499.96 ns' │ '500.08 ns' │ '40.00' │ '56.31 ms' │ └─────────┴─────────────────────────────────────┴────────┴─────────────┴───────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────┴────────────┘
┌─────────┬──────────────────────┬────────┬─────────────┬───────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────┬────────────┐ │ (index) │ name │ laps │ fastest │ slowest │ average │ p50 < │ p75 │ p90 │ ratio % │ duration │ ├─────────┼──────────────────────┼────────┼─────────────┼───────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────┼────────────┤ │ 0 │ 'stringConcat()' │ 100000 │ '199.91 ns' │ '1.25 ms' │ '324.42 ns' │ '299.93 ns' │ '300.05 ns' │ '300.05 ns' │ '0.00' │ '32.44 ms' │ │ 1 │ 'String.concat();' │ 100000 │ '199.91 ns' │ '1.51 ms' │ '396.50 ns' │ '300.05 ns' │ '300.05 ns' │ '399.95 ns' │ '11.11' │ '39.65 ms' │ │ 2 │ 'samples.join()' │ 100000 │ '399.95 ns' │ '1.29 ms' │ '524.82 ns' │ '400.07 ns' │ '499.96 ns' │ '500.08 ns' │ '55.56' │ '52.48 ms' │ └─────────┴──────────────────────┴────────┴─────────────┴───────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────┴────────────┘ ┌─────────┬─────────────────────────────────────────┬────────┬─────────────┬───────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────┬────────────┐ │ (index) │ name │ laps │ fastest │ slowest │ average │ p50 < │ p75 │ p90 │ ratio % │ duration │ ├─────────┼─────────────────────────────────────────┼────────┼─────────────┼───────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────┼────────────┤ │ 0 │ 'stringConcat(samples, 1, 5)' │ 100000 │ '199.91 ns' │ '1.58 ms' │ '381.89 ns' │ '299.93 ns' │ '300.05 ns' │ '399.95 ns' │ '0.00' │ '38.19 ms' │ │ 1 │ 'String.concat(...samples.slice(1, 5))' │ 100000 │ '199.91 ns' │ '1.75 ms' │ '471.22 ns' │ '300.05 ns' │ '399.95 ns' │ '400.07 ns' │ '10.01' │ '47.12 ms' │ └─────────┴─────────────────────────────────────────┴────────┴─────────────┴───────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────┴────────────┘