Народ, всем привет. Прошу, помогите решить одну задачку:
Есть набор записей, в которых одно из полей заполнено цифрой. Запись (record) имеет уникальный номер в поле number и поле pr , которое содержит цифры, а так же прочий набор полей чем-то заполненных.
к примеру (не все варианты, а пример возможных):
I)
1,2,4,5 - сделать такое - 1,2,3,4 (т.е. 4 стала 3, а 5 стала 4)
или
II)
1,3,5 - сделать такое - 1,2,3 (т.е. 3 стала 2, а 5 стала 3)
или
III)
1,4,5 - сделать такое - 1,2,3 (т.е. 4 стала 2, а 5 стала 3)
или
IV)
2,4,5 - сделать такое - 1,2,3 (т.е. 2 стала 1, а 4 стала 2, а 5 стала 3)
Или полнее для I) примера приведенного выше:
запись number=100 имеет pr=1; запись number=101 имеет pr=2; запись number=223 имеет pr=4; запись number=190 имеет pr=5
Должно стать:
запись number=100 имеет pr=1; запись number=101 имеет pr=2; запись number=223 имеет pr=3; запись number=190 имеет pr=4
Что-то я красиво написал слишком - записи не выстроены по порядку так как я их написал в I)... - это просто я так их отобразил.
По сути необходимо сохраняя старшинство цифр, перенумеровать их в последовательный ряд от одного.
Я так понял, что порядок не имеет значения, а я это понял из этого фрагмента красоты:
запись number=100 имеет pr=1; запись number=101 имеет pr=2; запись number=223 имеет pr=4; запись number=190 имеет pr=5
Должно стать:
запись number=100 имеет pr=1; запись number=101 имеет pr=2; запись number=223 имеет pr=3; запись number=190 имеет pr=4
То, можно так:
const numbered = records.map((el, index) => ({...el, pr: index + 1}) ) // numbered - новый массив с нужной нумерацией pr
// если нужно изменить на месте, то через forEach изменить свойство pr