当前位置: 首页 > 面试题库 >

在Javascript中,如何有条件地将成员添加到对象?

濮阳旺
2023-03-14
问题内容

我想创建一个有条件添加成员的对象。简单的方法是:

var a = {};
if (someCondition)
    a.b = 5;

现在,我想编写一个更惯用的代码。我在尝试:

a = {
    b: (someCondition? 5 : undefined)
};

但是,现在b是,a其值为的成员undefined。这不是期望的结果。

有方便的解决方案吗?

更新资料

我寻求一个可以解决几个成员的一般情况的解决方案。

a = {
  b: (conditionB? 5 : undefined),
  c: (conditionC? 5 : undefined),
  d: (conditionD? 5 : undefined),
  e: (conditionE? 5 : undefined),
  f: (conditionF? 5 : undefined),
  g: (conditionG? 5 : undefined),
 };

问题答案:

在纯Javascript中,我想不出比您的第一个代码片段更惯用的东西。

但是,如果不是不可能使用jQuery库,那么$.extend()应该符合您的要求,因为如文档所述:

未定义的属性不会被复制。

因此,您可以编写:

var a = $.extend({}, {
    b: conditionB ? 5 : undefined,
    c: conditionC ? 5 : undefined,
    // and so on...
});

并获得您期望的结果(如果conditionBfalse,则在b中将不存在a)。



 类似资料:
  • 我想创建一个有条件添加成员的对象。简单的方法是: 现在,我想写一段更地道的代码。我正在尝试: 但是现在,

  • 我正在尝试执行以下操作以满足代码构建器的要求(具体来说是Sencha Cmd)。 这是我需要做的本质。关键因素是函数体必须以返回对象文字结束。由于生成器中的限制,我无法返回变量。那么,如果参数includeB为true,如何在下面的伪代码点添加属性“b”,但如果为false,则根本不添加属性。不允许ie b==未定义或b==null。 也许这是不可能的。 感谢阅读和考虑, 默里

  • 我想有条件地向对象添加一个属性。目前我有这个: 问题是如果汽车。电池不存在我有电池:未定义。如果对象中不存在该属性,我宁愿不要该属性。我怎样才能做到这一点?

  • 问题内容: 这是我的对象文字: 我如何添加字段与对象? 问题答案: 有两种向对象添加新 属性的 方法: 使用点表示法: 使用方括号表示法: 当您知道属性名称时,将使用第一种形式。动态确定属性名称时,使用第二种形式。像这个例子: 甲 真实 JavaScript数组可使用任一构造: 数组文字符号: 数组构造器符号:

  • 问题内容: 我正在尝试使用指令根据某个属性的值将属性添加到指令。不幸的是,这对我不起作用。我设置了一个简单的示例来演示正在发生的事情。 柱塞示例 问题答案: 编辑 在阅读了Angular Repo中提到的GitHubIssue之后,我终于明白了。 您需要使用更高的指令设置一个属性,并将其属性设置为true(在编译我们的指令后,跳过所有其他指令的编译)。然后在函数中,我们将编译整个元素本身。但是在此

  • 让我更多地解释一下这个向导(组装您的PC):我们在本节中有3个步骤, 步骤1:用户从现有产品中选择主板、Ram、Cpu等。 步骤2:查看列表并可以更改某些产品的数量(如Ram) 步骤3:用户在页面底部看到带有一些选项的最终列表,这些选项可以 选择装配费用(1.不装配,只购买列表2.装配有一年保修3.装配有无保修),当他们点击“提交”时,所有选择的产品都被添加到购物车,这是我们需要添加该费用的地方,