@ratibordas
Frontend-статист

Как удалить все элементы из обьекта после определенного ключа?

Доброго времени суток. Стало интересно, как можно удалить все элементы из обьекта после определенного ключа, например:
const obj = {
  key1: 'jkljkl',
  key2: 'jkljlk',
  key3: 'kjljklkjl',
  key4: 'jkljlk',
  key5: 'jkljklj'
}

У нас есть key3
Возможно ли удалить все пары ключ: значения после key3, сохранив при этом все пары до него? Спасибо за ваши варианты!
const obj = {
  key1: 'jkljkl',
  key2: 'jkljlk',
  key3: 'kjljklkjl',
}


А можно ли получить что-то вроде key3 + 1?
const obj = {
  key1: 'jkljkl',
  key2: 'jkljlk',
  key3: 'kjljklkjl',
  key4: 'jkljlk'
}
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
for (const [ key, value ] of Object.entries(obj)) {
  if (key > 'key3') {
    delete obj[key];
  }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Tom_Xor
@Tom_Xor
I scriptease in JavaScript
const obj = {}

// Добавляем много ключей для последующего тестирования
!function () {
    for (let i = 0; i < 101; i++) obj['key' + i] = 0;
    // Добавляем ключи, которые не должны быть удалены
    ['', 'skk5', 'kex5', 'kez5', 'key', 'key ', 'key \n\n\n ', 'keyN', 'key5S',].forEach(key => obj[key] = 0)
}()


// Удаляем лишние ключи
for (const key of Object.keys(obj))
    key.slice(0, 3) == 'key' && +key.slice(3) > 3 && delete obj[key]

console.log(obj)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы