function resort(array) {
var i = 0,
length = array.length,
result = [],
indexes = {},
j, row, item, type;
while ((row = array[i++]) instanceof Array) {
j = 0;
while (typeof (item = row[j++]) === 'object'
&& item !== null
&& 'type' in item) {
type = item.type;
if (type in indexes) {
result[indexes[type]].push(item);
} else {
indexes[type] = result.length;
result.push([item]);
}
}
}
return result;
}
console.log('\nThe resort 1 is: \n\n', resort([
[{"name":"123","url":"fdsfds","type":"x"},
{"name":"123","url":"fdsfds","type":"y"},
{"name":"123","url":"fdsfds","type":"z"}],
[{"name":"123","url":"fdsfds","type":"x"},
{"name":"123","url":"fdsfds","type":"y"}]
]));
console.log('\nThe resort 2 is: \n\n', resort([
[{"name":"123","url":"fdsfds","type":"x"},
{"name":"123","url":"fdsfds","type":"y"},
{"name":"123","url":"fdsfds","type":"z"},
{"name":"123","url":"fdsfds","type":"z"}],
[{"name":"123","url":"fdsfds","type":"x"},
{"name":"123","url":"fdsfds","type":"y"}],
[{"name":"123","url":"fdsfds","type":"x"}]
]));
~$ node test
The resort 1 is:
[ [ { name: '123', url: 'fdsfds', type: 'x' },
{ name: '123', url: 'fdsfds', type: 'x' } ],
[ { name: '123', url: 'fdsfds', type: 'y' },
{ name: '123', url: 'fdsfds', type: 'y' } ],
[ { name: '123', url: 'fdsfds', type: 'z' } ] ]
The resort 2 is:
[ [ { name: '123', url: 'fdsfds', type: 'x' },
{ name: '123', url: 'fdsfds', type: 'x' },
{ name: '123', url: 'fdsfds', type: 'x' } ],
[ { name: '123', url: 'fdsfds', type: 'y' },
{ name: '123', url: 'fdsfds', type: 'y' } ],
[ { name: '123', url: 'fdsfds', type: 'z' },
{ name: '123', url: 'fdsfds', type: 'z' } ] ]
~$