Если вам просто нужно сцепить все массивы, вы могли бы написать простую вспомогательную функцию, которая использует Array.prototype.reduce
и Array.prototype.concat
function concatAll() {
return [].reduce.call (arguments, function (a,b) {return a.concat (b)},[])
}
чтобы использовать его, просто вызовите его со всеми массивами, которые вы хотите объединить.
var a = ["a1", "a2", "a3"],
b = ["b1", "b2", "b3"],
c = ["c1", "c2", "c3"];
concatAll (a,b,c) //["a1", "a2", "a3", "b1", "b2", "b3", "c1", "c2", "c3"]
Если вам нужно отсортировать массив вам после этого тоже Array.prototype.sort
принимает функцию в качестве параметра, который вы можете использовать для сортировки после числового значения первого, поставив на нее вес.
concatAll (a,b,c).sort(function (a, b) {
var aVals = a.match(/(\D*)(\d*)/),
bVals = b.match(/(\D*)(\d*)/),
weighted = [a[0] > b[0] ? 1 : a[0] < b[0] ? -1 : 0, b[1] - a[1]] //[string,number]
return weighted[0] - 2 * weighted[1] // give the number a double weight
}) //["a1", "b1", "c1", "a2", "b2", "c2", "a3", "b3", "c3"]
Херес example на jsFiddle
Напишите пользовательскую функцию 'sort'. – Florent