var testArray = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
var delim = {'a': 1};
function spreadArrayComparisonAndConcat(array, delim) {
return array.reduce(function (result, item, i) {
return i === 0 ? result.concat(item) : result.concat(delim, item);
}, []);
}
function spreadArrayConcat(array, delim) {
return array.reduce(function (result, item, i) {
return result.concat(delim, item);
}, []).slice(0, -1);
}
function spreadArrayComparison(array, delim) {
return array.reduce(function (result, item, i) {
if (i === 0) {
result.push(item);
} else {
result.push(delim, item);
}
return result;
}, []);
}
function spreadArrayPop(array, delim) {
var r = array.reduce(function (result, item) {
result.push(item, delim);
return result;
}, []);
r.pop();
return r;
}
function spreadArrayShift(array, delim) {
var r = array.reduce(function (result, item) {
result.push(delim, item);
return result;
}, []);
r.shift();
return r;
}
function spreadArraySlice(array, delim) {
return array.reduce(function (result, item) {
result.push(delim, item);
return result;
}, []).slice(1);
}
function spreadArrayTailSlice(array, delim) {
return array.reduce(function (result, item) {
result.push(delim, item);
return result;
}, []).slice(0, -1);
}
function spreadArraySlice2(array, delim) {
return array.slice(1).reduce(function (result, item) {
result.push(delim, item);
return result;
}, []);
}
function spreadArrayFor(arr, delim) {
var result = [];
for (var i = 0; i < arr.length; i++) {
result.push(arr[i], delim);
};
result.pop();
return result;
}
function spreadArrayForReverse(arr, delim) {
var result = []
for (var i = arr.length - 1; i >= 0; i--) {
result.unshift(arr[i], delim);
};
result.pop();
return result;
}
function spreadArrayForComparison(arr, delim) {
var result = [];
for (var i = 0; i < arr.length; i++) {
if (i === 0) {
result.push(arr[i]);
} else {
result.push(delim, arr[i]);
}
};
return result;
}
function spreadArrayForWithInit(arr, delim) {
var result = [arr[0]]
for (var i = 1; i < arr.length; i++) {
result.push(delim, arr[i]);
};
return result;
}
function spreadArrayForEach(arr, delim) {
var result = [];
arr.forEach(function(el, i){
if (i === 0) {
result.push(el);
} else {
result.push(delim, el);
}
});
return result;
}
spreadArrayComparisonAndConcat(testArray, delim);
spreadArrayConcat(testArray, delim);
spreadArrayComparison(testArray, delim);
spreadArrayPop(testArray, delim);
spreadArrayShift(testArray, delim);
spreadArraySlice(testArray, delim);
spreadArrayTailSlice(testArray, delim);
spreadArraySlice2(testArray, delim);
spreadArrayFor(testArray, delim);
spreadArrayForReverse(testArray, delim);
spreadArrayForComparison(testArray, delim);
spreadArrayForWithInit(testArray, delim);
spreadArrayForEach(testArray, delim);
--enable-precise-memory-info
flag.
Test case name | Result |
---|---|
ComparisonAndConcat | |
Concat | |
Comparison | |
Pop | |
Shift | |
Slice | |
TailSlice | |
Slice2 | |
For | |
ForReverse | |
ForComparison | |
ForWithInit | |
ForEach |
Test name | Executions per second |
---|---|
ComparisonAndConcat | 45051.5 Ops/sec |
Concat | 43514.2 Ops/sec |
Comparison | 446449.0 Ops/sec |
Pop | 410286.7 Ops/sec |
Shift | 426345.3 Ops/sec |
Slice | 382134.0 Ops/sec |
TailSlice | 388003.8 Ops/sec |
Slice2 | 418018.4 Ops/sec |
For | 906487.6 Ops/sec |
ForReverse | 316766.3 Ops/sec |
ForComparison | 952939.3 Ops/sec |
ForWithInit | 999513.8 Ops/sec |
ForEach | 451048.1 Ops/sec |
I'm ready to dive into the data! It appears that this is a JSON array of test results, specifically for a web browser testing tool.
Here's a summary of what I can infer from the data:
If you'd like to share more context about what these test results are for, I'd be happy to help interpret them further!