Merge Two Arrays so that the Values Alternate
You can use the map
method:
var array1 = [1, 2, 3, 4, 5];var array2 = ['a', 'b', 'c', 'd', 'e'];var arrayCombined = $.map(array1, function(v, i) { return [v, array2[i]];});console.log(arrayCombined);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
If you must use jQuery, you can take advantage of their broken $.map
implementation.
var result = $.map(array1, function(v, i) { return [v, array2[i]]; });
jQuery's $.map
flattens the returned array, giving you the result you want.
DEMO: http://jsfiddle.net/8rn2w/
Pure JS solution:
var result = array1.reduce(function(arr, v, i) { return arr.concat(v, array2[i]); }, []);
Just another solution using Array.prototype.flat() and Array.prototype.map().
var array1 = [1, 2, 3, 4, 5];var array2 = ['a', 'b', 'c', 'd', 'e'];var result = array1.map( (element, index) => [element, array2[index]]).flat();console.log(result);