Вычисляем совпадение элементов в массивах JS.
Это может понадобиться в тех случаях, когда нужно вычислить похожесть элементов нескольких массивов или найти определенные жлементы одного массива в другом массиве.
Ситуация.
У нас есть компонент приложения, который может выполнять какие-то определенные действия, указанные в массиве availableActions
. Но в одном случае нужен набор одних действий, в другом - других.
const availableActions = [{
name: 'addToPlaylist',
label: 'Add to playlist'
},{
name: 'removeFromPlaylist',
label: 'Remove from playlist'
},{
name: 'findSimilar',
label: 'Find similar tracks'
},{
name: 'addToFavorite',
label: 'Add to favorite'
}]
И для того, чтобы указать какие конкретно действия нам нужны, мы передаем компоненту массив с name
нужных действий:
const actions = ['addToPlaylist', 'removeFromPlaylist']
Теперь мы генерируем новый массив из того, что есть в availableActions
, но с учетом того, что в массиве actions
, опираясь на ключ name в availableActions
.
const filteredActions = availableActions.filter(item => actions.includes(item.name))
Теперь новый массив можно использовать в рендеринге кнопок действий.