Удалить один эллемент массива js
import data from '../../data.json';
import { ADD_IN_BASKET, REMOVE_IN_BASKET } from '../actions/productsActions'
const initialState = {
products: data.razorBlades,
basket:[],
};
export const productsReducer = (state = initialState, action) => {
switch(action.type){
case ADD_IN_BASKET : return {
products : [...state.products],
basket: state.basket.concat({
id: action.payload.id,
})};
case REMOVE_IN_BASKET: return {
products: [...state.products],
basket: state.basket.splice(
state.basket.findIndex((item) => item.id === action.payload.id),
1
)
// basket: state.basket.filter(product => product.id !== action.payload.id)
}
default: return state
}
};
Есть массив. Нужно удалить только один эллемент по заданному id
basket: basket.splice(basket.findIndex(item => item.id === selectedId),1) // мой вариант плохо работает, удаляет не то что нужно
basket: basket.filter(product => product.id !== selectedId) // удаляет все подходящие по ид,а нужно только один
basket: [
{
id: 12
},
{
id: 12
},
{
id: 13
}
]