¿Cómo actualizar la matriz de estado para agregar un valor después de la posición relacionada en lugar de al final de la matriz? en el ejemplo a continuación, por ejemplo, ¿quiero que el arroz vaya después del arroz en lugar de los plátanos? , esta lógica actual hace que las cosas se mezclen mucho cuando quiero representar elementos de acuerdo con lo que el usuario ha seleccionado para ser el primer elemento.
let stateArr = [{item : cucumber}, {item : rice }, {item: bannan }, {item : rice }] // current state logic [...stateArr, newItem ]Si desea mantener las cosas inmutables, puede dividir su matriz en el punto en el que desea insertar el nuevo elemento y distribuir esas dos secciones alrededor de su nuevo valor.
let stateArr = [ { item: "cucumber" }, { item: "rice" }, { item: "bannan" }, { item: "fish" }, ]; // First, find the location of the item you want to insert _after_ const riceIndex = stateArr.findIndex(({ item }) => item === "rice"); const newItem = { item: "crab" }; // Next, slice _right after_ that item (+ 1) const newState = [ ...stateArr.slice(0, riceIndex + 1), newItem, ...stateArr.slice(riceIndex + 1), ]; console.log(newState);