[a, b] = [Math.min(a, b), Math.max(a, b)];
a=4
b=5
c=9
print('{2:d}-{1:d}={0:d}'.format(a, b, c))
# выведет: 9-5=4
{2:d}
это место для вывода значения. 2 это позиция аргумента, сюда попадёт третий, c
. d
означает число. следующий_id, предыдущий_id
id next prev
1 2 null
2 3 1 <-- этого забираем
3 4 2
--------------
1 3 null
3 4 1
id next prev
7 8 6 <-- вставить после этого
8 9 7
--------------
7 2 6
2 8 7
8 9 2
2 + 2 + 1 = 5
строк.const ban = arr.flat().sort((a, b) => a - b);
const mm = {min: Math.min(...ban), max: Math.max(...ban)};
const result = [...new Array(15)].map((_, i) => 36 - i > mm.max ? 36 - i : mm.min - i );
Да, есть риск уехать в отрицательные, но условия этого не запрещают.{ "n1": 1, "n2": 5, "n3": 11, "n4": 12 } => "[1,5,11,12]"
{ "n1": 1, "n2": 5, "n3": 12, "n4": 11 } => "[1,5,11,12]"
const makeHash = (obj) => JSON.stringify(Object.values(obj).sort((a, b) => a - b));
const hashes = list.map(makeHash);
const result = list.filter((el, i) => i === hashes.indexOf(makeHash(el)))
[
{
"n1": 18,
"n2": 1,
"n3": 5,
"n4": 17
},
{
"n1": 1,
"n2": 2,
"n3": 11,
"n4": 6
},
{
"n1": 1,
"n2": 5,
"n3": 11,
"n4": 12
},
{
"n1": 6,
"n2": 17,
"n3": 12,
"n4": 1
},
{
"n1": 4,
"n2": 7,
"n3": 8,
"n4": 20
},
{
"n1": 2,
"n2": 3,
"n3": 8,
"n4": 7
},
{
"n1": 2,
"n2": 8,
"n3": 7,
"n4": 6
},
{
"n1": 14,
"n2": 15,
"n3": 11,
"n4": 10
},
{
"n1": 11,
"n2": 8,
"n3": 16,
"n4": 15
},
{
"n1": 11,
"n2": 12,
"n3": 6,
"n4": 14
},
{
"n1": 17,
"n2": 12,
"n3": 5,
"n4": 1
},
{
"n1": 8,
"n2": 9,
"n3": 13,
"n4": 19
},
{
"n1": 8,
"n2": 9,
"n3": 19,
"n4": 15
},
{
"n1": 10,
"n2": 9,
"n3": 15,
"n4": 8
},
{
"n1": 11,
"n2": 12,
"n3": 17,
"n4": 6
}
]
ИЛИ
не нужен скрытый слой "h" – достаточно одного.ИЛИ
веса будут b = -1, w1 = 2, w2 = 2