У меня есть функция, в которой я перебираю массив вложенных объектов, целью которого является создание связей между различными блоками. В моей функции я могу создать первый фильтр, в котором я получаю различные варианты комбинации между полями, но после этого шага мне нужно остаться только с тем, который возвращает следующее ближайшее значение одного из свойств каждого объекта. Например, когда я нахожусь в блоке 1, у которого свойство порядка равно 3 и может быть объединено с любым количеством блоков, мне нужно оставить только тот, у которого свойство порядка является следующим ближайшим значением. Предотвращение того, что вы можете соединиться с тем, которое имеет более низкое значение и имеет самое высокое значение порядка из всех.
for (const indexBox in boxes) {
if (boxes.hasOwnProperty(indexBox)) {
const box = boxes[indexBox];
const combinations = box.filter(b => b.properties.order !== box.properties.order);
}
}
мои данные
[
{
x: 200,
y: 350,
properties: {
order: 1,
name: "A",
input: {
0: { id: 1, boxId: 1, color: "azul" },
1: { id: 2, boxId: 1, color: "rojo" },
},
output: {
0: { id: 1, boxId: 1, color: "azul" },
1: { id: 2, boxId: 1, color: "rojo" },
},
},
},
{
x: 600,
y: 550,
properties: {
order: 2,
name: "B",
input: {
0: { id: 1, boxId: 2, color: "azul" },
1: { id: 2, boxId: 2, color: "rojo" },
},
output: { 0: { id: 1, boxId: 2, color: "verde" } },
},
},
{
x: 100,
y: 450,
properties: {
order: 3,
name: "C",
input: {
0: { id: 1, boxId: 3, color: "azul" },
1: { id: 2, boxId: 3, color: "verde" },
},
output: {
0: { id: 1, boxId: 3, color: "azul" },
1: { id: 2, boxId: 3, color: "rojo" },
},
},
},
]
Из этого фильтра я получаю массив объекты, какой метод я должен использовать, чтобы получить следующий ближайший порядок? или, может быть, есть способ получить его непосредственно в первом фильтре?
Спасибо, что уделили время.