如何在定义对象时有条件地创建密钥? (我知道这是可能的,因为之前有人做过,我忘记了......)
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
}
答案 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'
}
}
}
}
然而,由于问题不明确。我们需要更明确地定义您正在寻找的内容。