【发布时间】:2021-11-18 21:33:30
【问题描述】:
我有更新数组功能,如果可能的话,我想简化这段代码。
这个更新函数是关于更新和比较数组的值。
数据将在fruit_temp 内部进行比较
fruit_temp fruit_db_id 的示例数据是和数据库中现有的id。
fruit_temp = [{
fruit_db_id: 71,
fuit_id : 1,
name : 'papaya'
}, {
fruit_db_id: 73,
fuit_id : 3,
name : 'apple'
}];
我将获取并读取fruit_temp 值,当它执行更新功能时,它将比较现有值和将插入的新值。这是此更新功能的解决方案。我只是想知道这段代码是否可以简化。
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
});
}
});
}
【问题讨论】:
-
据我所知,这里没有什么可以简化的。如果要减少,请删除空行上的 cmets 和换行符????。好吧,这个问题在这里没有必要。同样,删除箭头函数
(el) =>{到e => {中仅 1 个参数的中断 -
不返回任何内容的
Array.prototype.map()应该是Array.prototype.forEach()或(我的偏好)一个简单的for (const el of ...) { ... }循环。 -
我只是想知道如果对象中没有id,为什么可以使用el.Id或e.id?我只看到一个fruit_id
标签: javascript jquery arrays