Tengo la función de matriz de actualización. Quiero simplificar este código si es posible. Esta función de actualización se trata de actualizar y comparar el valor de la matriz. Los datos se compararán dentro de los datos de ejemplo fruit_temp de fruit_temp fruit_db_id y la identificación existente dentro de la base de datos.
fruit_temp = [{ fruit_db_id: 71, fuit_id : 1, name : 'papaya' }, { fruit_db_id: 73, fuit_id : 3, name : 'apple' }];Obtendré y leeré el valor fruit_temp y cuando sea para realizar la función de actualización, comparará el valor existente y el nuevo que se insertará. Esta es la solución para esta función de actualización. Solo quiero saber si este código se puede simplificar o no.
const updateFruit = () => { finalFruit_temp = []; let fruit = $('#fruit').val(); //getting fruit value fruit = fruit.map(Number); //convert string value to integer fruit.map((el) =>{ let fruitData = fruit_temp.filter((e) => e.id === el)[0]; //return index if compare true finalFruit_temp.push({ "fruit_db_id" :(fruitData == undefined) ? null : fruitData.fruit_db_id, "fruit_id" :(fruitData == undefined) ? el : fruitData.id, "status" :true }); }); fruit_temp.map((el) =>{ let checkedFruit= fruit.includes(el.id); if(checkedFruit == false) { finalFruit_temp.push({ "fruit_db_id" :el.db_id, "fruit_id" :el.id, "status" :false }); } }); }Este código parece muy simplificado, pero veo algunas cosas que podrías hacer para acortarlo aún más. Definición de variables en una sola línea y cambio de la última declaración de condición.
const updateFruit = () => { finalFruit_temp = []; let fruitData, fruit = $('#fruit').val().map(Number); fruit.map((el) => { fruitData = fruit_temp.filter((e) => e.id === el)[0]; finalFruit_temp.push({ "fruit_db_id" :(fruitData == undefined) ? null : fruitData.fruit_db_id, "fruit_id" :(fruitData == undefined) ? el : fruitData.id, "status" :true }); }); fruit_temp.map((el) => { if(!fruit.includes(el.id)){ finalFruit_temp.push({ "fruit_db_id" :el.db_id, "fruit_id" :el.id, "status" :false }); } }); }