Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function testForEach(array) {
- array.reduce((res, cur) => {
- if (Array.isArray(cur)) {
- cur.forEach(i => res.push(i));
- } else {
- res.push(i);
- }
- return res;
- });
- }
- function testConcat(array) {
- array.reduce((res, cur) => {
- if (Array.isArray(cur)) {
- cur.forEach(i => res.push(i));
- } else {
- res.push(i);
- }
- return res;
- });
- }
- function testSpread(array) {
- array.reduce((list, i) => (Array.isArray(i) ? [...list, ...i] : [...list, i]), []);
- }
- function measureTime(fun) {
- console.time(fun.name);
- fun(Array.prototype.slice.call(arguments, 1));
- console.timeEnd(fun.name);
- }
- function generateInput() {
- let result = [];
- function generateMember() {
- let rand = Math.random();
- if (rand < 0.05) {
- return new Array(5);
- } else if (rand < 0.7) {
- return rand;
- } else {
- return 'AAAAAAAAAAA';
- }
- }
- for (let i = 0; i < 100000; i++) {
- result.push(generateMember());
- }
- return result;
- }
- let input = generateInput();
- measureTime(testForEach, input);
- measureTime(testSpread, input);
- measureTime(testConcat, input);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement