Постоянно обновляйте массив объектов и управляйте сокращением длины

Я пытаюсь сохранить историю поиска в приложении "Реакция / Избыточность" (используя "Извлечение-действия"), которое я выполняю в редукторе. Я хочу сохранить последние десять поисков и получить самые последние в начале. У меня есть массив объектов, и я хочу (непременно) добавить новый объект в начале массива и сдвинуть все оставшиеся результаты на один. Я также не хочу, чтобы массив вырос больше, чем на 10 элементов. В настоящее время я просто переопределяю начальный элемент каждый раз с этим:

[setWorkPermit]: (state, action) => ({
  ...state,
  searchHistory: Object.assign([...state.searchHistory], { [0]: action.payload }),
}),

Я надеялся, что в ES6 был чистый способ сделать это. Любой берущий?

1 ответ

Решение

Я думаю, что ломтики массива могли бы добиться цели здесь!

Просто создайте новый массив, содержащий новый объект с нулевым индексом, а затем фрагмент предыдущих 0-9 индексов, например:

searchHistory: [action.payload, ...state.searchHistory.slice(0,9)],

Надеюсь, это поможет!

Другие вопросы по тегам