Files
2024-05-16 11:40:24 +02:00

36 lines
1.1 KiB
JavaScript

// Copyright <2024> Michael Fabian 'Xaymar' Dirks <info-at-xaymar-dot-com>
// Licensed under 3-Clause BSD License: https://opensource.org/license/bsd-3-clause
import { benchTime } from './benchTime.mjs';
export default function (size) {
function spread(arr) { return [...arr]; }
function spreadNew(arr) { return new Array(...arr); }
function arraySlice(arr) { return arr.slice(); }
function arraySlice0(arr) { return arr.slice(0); }
function arrayConcat(arr) { return [].concat(arr); }
function arrayMap(arr) { return arr.map(i => i); }
function objectValues(arr) { return Object.values(arr); }
function objectAssign(arr) { return Object.assign([], arr); }
function json(arr) { return JSON.parse(JSON.stringify(arr)); }
function loop(arr) { const a = []; for (let val of arr) { a.push(val); } return a; }
benchTime(
10, 1000,
() => {
let arr = new Array(size);
for (let a = 0; a < arr.length; a++) { arr[a] = Math.random(); };
return [arr];
},
spread,
spreadNew,
arraySlice,
arraySlice0,
arrayConcat,
arrayMap,
objectValues,
objectAssign,
json,
loop
);
};