arr1 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18] arr2 = ['a','b','c','c','b','a','a','b','c','c','b','a','a','b','c','c','b','a'] newData = {a:[], b:[], c:[]}; arr2.forEach(function(d,i){ newData[d].push(arr1[i]) })