如何在对象中创建密钥?

时间:2017-10-03 05:54:39

标签: javascript

如何在定义对象时有条件地创建密钥? (我知道这是可能的,因为之前有人做过,我忘记了......)

var where = {
  wid: 123,
  pid: 321
}

var superwhere = {
  wid: where.wid,
  pid: where.pid,
  pageid: where.pageid || 'something here I forgot'
}

superwhere的输出应该是:

{
  wid: 123,
  pid: 321
}

基本上类似于:

var where = {
  wid: 123,
  pid: 321
}

var superwhere = {
  wid: where.wid,
  pid: where.pid,
}

if (where.pageid) {
  superwhere.pageid = where.pageid
}

2 个答案:

答案 0 :(得分:1)

您可以使用对象传播

var where = {
  wid: 123,
  pid: 321
}

var superwhere = {pageid:"something here I forgot", ...where};

console.log(superwhere);

Object.assign()

var where = {
  wid: 123,
  pid: 321,
  pageid: 456
}

var superwhere = Object.assign({pageid:"something here I forgot"}, where);

console.log(superwhere);

答案 1 :(得分:0)

您可能需要查看ES6中支持的类。

通常,Classes可以通过函数枚举具有条件的JSON对象。您可以通过以下类和类的实例来观察它。

class Conditional {
  generateJSON(n) {
    if (n == true) {
      return {
        'key1': 'hello',
        'key2': 'world'
      }
    } else {
      return {
        'key1': 'hello'
      }
    }
  }
}

然而,由于问题不明确。我们需要更明确地定义您正在寻找的内容。