首页 > 解决方案 > 如何在不重复整个对象的情况下返回几乎相似的对象

问题描述

我有一个 javascript 对象,如下所示:

something = {
        a: 1,
        b: 2,
        c: 3,
    }

在我的“<code>if”条件下,我想返回上面的对象,但在我的“<code>else”条件下,我想返回相同的对象但没有第三个属性。 

c: 3

  有没有一种方法可以做到这一点,而无需在 else 条件下重复或再次写入对象并排除第三个属性 (c:3) 希望我把问题说清楚了。我这样做的原因是因为我的if条件非常大,我不想在else块中再次编写它,因为它会重复整个if逻辑,但属性会少一个。如果我无法解释我的问题,请告诉我

标签: javascript

解决方案


使基础对象不带c,然后在中添加c属性if

const base = {
  a: 1,
  b: 2,
};
if (cond) {
  return { ...base, c: 3 };
} else {
  return base;
}

另一种选择,通过使用&&有条件地在c属性中传播:

return {
  a: 1,
  b: 2,
  ...(cond && { c: 3 })
};

推荐阅读