У меня есть массив в следующем порядке
[
{
"source": 0,
"target": 1,
"value": 22
},
{
"source": 1,
"target": 2,
"value": 22
},
{
"source": 0,
"target": 1,
"value": 19
},
{
"source": 1,
"target": 3,
"value": 19
},
{
"source": 0,
"target": 1,
"value": 12
},
{
"source": 1,
"target": 4,
"value": 12
},
{
"source": 0,
"target": 1,
"value": 3.230000000000002
},
{
"source": 1,
"target": 5,
"value": 3.230000000000002
},
{
"source": 0,
"target": 6,
"value": 109
},
{
"source": 6,
"target": 7,
"value": 109
},
{
"source": 0,
"target": 6,
"value": 25
},
{
"source": 6,
"target": 8,
"value": 25
},
{
"source": 0,
"target": 6,
"value": 20
},
{
"source": 6,
"target": 3,
"value": 20
},
{
"source": 0,
"target": 6,
"value": 17
},
{
"source": 6,
"target": 9,
"value": 17
},
{
"source": 0,
"target": 6,
"value": 13
},
{
"source": 6,
"target": 10,
"value": 13
},
{
"source": 0,
"target": 6,
"value": 11
},
{
"source": 6,
"target": 11,
"value": 11
},
{
"source": 0,
"target": 6,
"value": 7
},
{
"source": 6,
"target": 12,
"value": 7
},
{
"source": 0,
"target": 6,
"value": 7
},
{
"source": 6,
"target": 13,
"value": 7
},
{
"source": 0,
"target": 6,
"value": 6
},
{
"source": 6,
"target": 14,
"value": 6
},
{
"source": 0,
"target": 6,
"value": 4
},
{
"source": 6,
"target": 15,
"value": 4
},
{
"source": 0,
"target": 6,
"value": 2
},
{
"source": 6,
"target": 4,
"value": 2
}
]
Мне нужно отсортировать его в следующем порядке
[
{
"source": 0,
"target": 1,
"value": 3.230000000000002
},
{
"source": 1,
"target": 5,
"value": 3.230000000000002
},
{
"source": 0,
"target": 1,
"value": 12
},
{
"source": 1,
"target": 4,
"value": 12
},
{
"source": 0,
"target": 1,
"value": 19
},
{
"source": 1,
"target": 3,
"value": 19
},
{
"source": 0,
"target": 1,
"value": 22
},
{
"source": 1,
"target": 2,
"value": 22
},
{
"source": 0,
"target": 6,
"value": 2
},
{
"source": 6,
"target": 4,
"value": 2
},
{
"source": 0,
"target": 6,
"value": 4
},
{
"source": 6,
"target": 15,
"value": 4
},
{
"source": 0,
"target": 6,
"value": 6
},
{
"source": 6,
"target": 14,
"value": 6
},
{
"source": 0,
"target": 6,
"value": 7
},
{
"source": 6,
"target": 12,
"value": 7
},
{
"source": 0,
"target": 6,
"value": 7
},
{
"source": 6,
"target": 13,
"value": 7
},
{
"source": 0,
"target": 6,
"value": 11
},
{
"source": 6,
"target": 11,
"value": 11
},
{
"source": 0,
"target": 6,
"value": 13
},
{
"source": 6,
"target": 10,
"value": 13
},
{
"source": 0,
"target": 6,
"value": 17
},
{
"source": 6,
"target": 9,
"value": 17
},
{
"source": 0,
"target": 6,
"value": 20
},
{
"source": 6,
"target": 3,
"value": 20
},
{
"source": 0,
"target": 6,
"value": 25
},
{
"source": 6,
"target": 8,
"value": 25
},
{
"source": 0,
"target": 6,
"value": 109
},
{
"source": 6,
"target": 7,
"value": 109
}
]
Пока что я пробовал ниже, сначала сортировка на основе source,target and value
, теперь я не знаю, как сортировать на втором этапе, чтобы добиться желаемого. Любая помощь / предложение будет оценено.
var data = [{
"source": 0,
"target": 1,
"value": 22
},
{
"source": 1,
"target": 2,
"value": 22
},
{
"source": 0,
"target": 1,
"value": 19
},
{
"source": 1,
"target": 3,
"value": 19
},
{
"source": 0,
"target": 1,
"value": 12
},
{
"source": 1,
"target": 4,
"value": 12
},
{
"source": 0,
"target": 1,
"value": 3.230000000000002
},
{
"source": 1,
"target": 5,
"value": 3.230000000000002
},
{
"source": 0,
"target": 6,
"value": 109
},
{
"source": 6,
"target": 7,
"value": 109
},
{
"source": 0,
"target": 6,
"value": 25
},
{
"source": 6,
"target": 8,
"value": 25
},
{
"source": 0,
"target": 6,
"value": 20
},
{
"source": 6,
"target": 3,
"value": 20
},
{
"source": 0,
"target": 6,
"value": 17
},
{
"source": 6,
"target": 9,
"value": 17
},
{
"source": 0,
"target": 6,
"value": 13
},
{
"source": 6,
"target": 10,
"value": 13
},
{
"source": 0,
"target": 6,
"value": 11
},
{
"source": 6,
"target": 11,
"value": 11
},
{
"source": 0,
"target": 6,
"value": 7
},
{
"source": 6,
"target": 12,
"value": 7
},
{
"source": 0,
"target": 6,
"value": 7
},
{
"source": 6,
"target": 13,
"value": 7
},
{
"source": 0,
"target": 6,
"value": 6
},
{
"source": 6,
"target": 14,
"value": 6
},
{
"source": 0,
"target": 6,
"value": 4
},
{
"source": 6,
"target": 15,
"value": 4
},
{
"source": 0,
"target": 6,
"value": 2
},
{
"source": 6,
"target": 4,
"value": 2
}
];
data.sort(function(a, b) {
return a.source - b.source || a.target - b.target || a.value - b.value;
});
console.log(JSON.stringify(data));
Дата обновления 1
Существует связь ч / б источника и цели. Сортированный массив должен быть в следующей последовательности:
наименьший элемент с именем "A" на основе источника, цели, значения
источник = наименьший источник
цель = наименьшая цель
значение = наименьшее значение
все элементы, которые
source = element A target
target =
Value = element A value
..................
Следующий меньший элемент с именем «B» на основе источника, цели, значения
источник = меньший источник
цель = меньшая цель
значение = меньшее значение
все элементы, которые имеют
source = element B target
target =
Value = element B value
...................
Следующий маленький элемент с именем "C "на основе источника, цели, значения
источник = малый источник
цель = маленькая цель
значение = малое значение
все элементы, которые
источник = элемент C target
target =
Value = element C value
так далее и так далее.