@Esm322

Как дополнить функцию получения id?

Подскажите, пожалуйста, как дописать функцию получения id так, чтобы при добавлении нового объекта с id учитывалось недостающее число. Например, есть массив объектов:
const arr = [
 {id: 1, info: 'some'},
 {id: 2, info: 'some'},
 {id: 3, info: 'some'},
 {id: 4, info: 'some'},
 {id: 5, info: 'some'},
 {id: 6, info: 'some'},
];

Если удаляется объект с 'id: 3', то при добавлении у нового объекта должно это учитываться и подставляться сначала то значение, которого не хватает, т.е. 3. Если же в массиве не пропущены числа по порядку, то добавляется уже с учётом максимального id + 1

Функция получения id:
function getID(arr) {
  let max = 0;

  for (const item of arr) {
    if (item.id > max) {
      max = item.id;
    }
  }

  return max + 1;
}


Заранее спасибо
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 1
szQocks
@szQocks
const arr = [
 {id: 1, info: 'some'},
 {id: 5, info: 'some'},
 {id: 3, info: 'some'},
 {id: 9, info: 'some'},
 {id: 6, info: 'some'},
];

const findId = (_arr, isNeedToSort) => {
  const arr = isNeedToSort ? _arr.slice().sort((a ,b )=> a.id - b.id) : _arr;

  for(let i = 0; i < arr.length; i++){
    if(i + 1 !== arr[i].id) return i + 1;
  }
}

console.log(findId(arr, true))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
24 нояб. 2024, в 03:11
500 руб./за проект
24 нояб. 2024, в 01:35
5000 руб./за проект
24 нояб. 2024, в 01:24
500 руб./за проект