当前位置: 首页 > 知识库问答 >
问题:

JavaScript仅在满足条件时插入一个新属性到内联对象[重复]

乜明朗
2023-03-14

我知道使用ES6 JavaScript对象,您可以使用[]动态声明变量为对象键,例如:

<代码>{[2]:“四!”}

给出输出{code>{“4”:“four!”}

问题是,可以采用类似的方法通过变量等内联方式添加整个属性吗?意思是,假设我有以下测试对象:

var myObj = {
    someProp: 2,
    someOtherProp: 3 //only add this prop if a condition is met
}

如果满足某个条件,我是否可以在内联对象中为someOtherProp编写任何内容,只将其添加到对象中?例如(伪代码),类似这样的东西

var myObj = {
    someProp: 2,
    [someBool ? null : "someOtherProp: 3"] //only add this prop if a condition is met
}

会像上面一样给出输出(考虑到someBool是true),但如果someBool是false,它会给我

var myObj = {
    someProp: 2
}

??

我知道我可以稍后简单地使用[]索引器向对象添加(或删除)属性,如

someBool && (myObj["someOtherProp"] = 3)

并为此生成某种辅助函数,

但我想知道是否有一种方法可以使用内联对象表示法来实现这一点?

共有1个答案

杨鸿畅
2023-03-14

可以使用条件运算符传播对象。

{}是中性值。

var myObj = {
    someProp: 2,
    ...(someBool ? {} : { someOtherProp: 3 })
}
 类似资料:
  • 问题内容: 是否可以在MySQL中执行UPDATE查询,仅在满足特定条件时才更新字段值?像这样: 换一种说法: 正确的方法是什么? 问题答案: 是! 这里有另一个例子: 之所以可行,是因为MySQL不会更新该行(如果没有更改),如docs中所述: 如果将列设置为其当前值,MySQL会注意到这一点,并且不会对其进行更新。

  • 问题内容: 我有对象清单。我想在此列表中找到一个属性(或方法结果-任意)等于的(第一个或任何对象)对象。 找到它的最佳方法是什么? 这是测试用例: 我认为使用生成器不会有任何区别,因为它仍然会遍历list。 ps .:方程式只是一个例子。当然我们要获得满足任何条件的元素。 问题答案: 这将从列表中获取与条件匹配的第一项,None如果没有匹配项,则返回。这是我首选的单表达式形式。 然而, 天真的循环

  • 如果相同,下面是一个代码,用于添加金额,并根据创建一个新的

  • 问题内容: 我的数据结构如下: 我正在尝试进行一个SQL查询,该查询将计算正在运行的SUM,但在小时数为3时将重置。结果应如下所示: 问题答案: 您可以使用条件总和创建子组:

  • 我正在尝试使用一个do while循环来找出用户是想将一只狗还是一只猫检查到Java的养狗系统中。其思想是,当提示时输入“dog”或“cat”,任何输入都将导致错误,并且他们将再次被提示输入文件名。 如果输入了“cat”或“dog”,那么将为程序分配等效的文件(dogs.txt或cats.txt),然后系统将运行并将数据加载到程序中。 以下是当前的变量: 以及导致问题的方法: 下面是运行代码时打印

  • 问题内容: 我正在使用构建Web POST参数的方法,但是有一些值仅在它们不存在的情况下才想添加。 效果很好,但是如果我将变量设为可选,如何防止将其添加到参数中?像这样的东西(伪代码): 我希望这已经足够清楚了,有人知道如何解决吗? 问题答案: 创建初始字母后,您必须单独添加密钥: Python没有语法将键定义为条件键;如果您已经按顺序拥有所有内容,则可以使用dict理解: 但这不是很可读。 另一