如何在JavaScript中根据条件为对象添加rang属性?
解决条件添加插入属性的问题
你的问题出在原代码的对象写法上——你直接把hianyos()作为对象的一个属性,但这个函数在条件不满足时返回undefined,不仅会多出来一个不需要的hianyos属性,还会因为逻辑不符合预期导致报错。我们可以用两种清晰的方式实现“仅当tipus === 'hianyos'时添加rang属性”的需求:
方案一:先构建基础对象,动态添加属性
这种方式逻辑直观,后续如果有更多条件判断也容易扩展:
app.post('/ujfeladat', (req, res) => { const { nev, tipus, szid } = req.body; // 先创建包含必填字段的基础对象 const insertData = { nev, tipus, szid }; // 条件满足时,给对象添加rang属性 if (tipus === 'hianyos') { insertData.rang = -1; } db('fl') .insert(insertData) .returning('*') .then(data => res.json(data)) .catch(err => console.log(err)); });
方案二:使用对象展开运算符(简洁写法)
如果只是简单的单条件判断,用对象展开运算符可以把逻辑压缩到一行,代码更紧凑:
app.post('/ujfeladat', (req, res) => { const { nev, tipus, szid } = req.body; db('fl') .insert({ nev, tipus, szid, // 条件满足时展开{ rang: -1 },不满足时展开空对象(相当于什么都不加) ...(tipus === 'hianyos' ? { rang: -1 } : {}) }) .returning('*') .then(data => res.json(data)) .catch(err => console.log(err)); });
两种方案都能精准实现你的需求:只有当tipus等于hianyos时,插入的记录才会包含rang: -1属性,其他情况不会添加这个属性。
内容的提问来源于stack exchange,提问作者user9686855
相关产品推荐
相关产品推荐

