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;
}