36 lines
1.1 KiB
JavaScript
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
|
|
);
|
|
}; |