【问题标题】:CoffeeScript: assigning multiple properties to an initialised objectCoffeeScript:将多个属性分配给初始化对象
【发布时间】:2014-09-17 14:20:17
【问题描述】:
w = {c: true}
w =
  a: 4
  b: true
console.log w

我希望结果 w 是 {a: 4, b: true, c: true},但我得到 {a: 4, b: true}。 如何在不丢失已设置属性的情况下对对象属性进行多次分配?

【问题讨论】:

  • this question 的答案可能很有用,因为您正在做的是将属性合并到初始对象中。

标签: coffeescript


【解决方案1】:

CoffeeScript: assigning multiple properties to an initialised object 是迄今为止最好的答案。

但是,如果您只想为对象添加一些属性,您可以这样做:

w = {c: true}
w.a = 4
w['b'] = true  # alternative notation

此外,这个问题更多是关于 JavaScript 而不是 CoffeeScript。

【讨论】:

  • 我知道这很明显......但不是很漂亮,我正在寻找一个简短的符号,在现实生活中 w 是一个名称很长的对象,我有很多属性要添加。
【解决方案2】:

我不认为它可以直接完成。我相信,你需要迭代:

w = {c: true}
temp =
  a: 4
  b: true
w[k] = v for k,v of temp
console.log w

【讨论】:

  • hmm...这对每个属性进行了两次分配
  • 没错,但@Yuri 的解决方案也是这样做的——看看转译的代码。
  • 最有效的方法似乎来自@Tomasz Zieliński - 虽然不是很漂亮。
【解决方案3】:
w = {c: true}
w[i] = v for i,v of {
  a: 4
  b: true
}
console.log w

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-05
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多