我通常是基于这样的条件来构造对象,这些对象中有字段,或者没有字段。
let data
if(something === true) {
data = {
name: 'String',
something: 'Something'
}
else {
data = {
name: 'String'
}
}但是,这似乎是一种非常“肮脏的方法”,因为每次都需要重新定义数据,如果有更多的条件,这会使大量代码变得安静。是否有更简洁的方法来实现这一点?
发布于 2016-06-01 15:27:20
只需有条件地向对象添加属性--您不需要一次将整个事件定义为对象文本。
let data = {
name: 'String'
};
if (something) {
data.something = 'Something';
}发布于 2016-06-01 15:34:23
您可以使用这样的三元运算符:
let data = {
name: 'String',
something: (something) ? "Something" : undefined,
}实际上,这应该是可行的,因为当您尝试访问一个不存在的对象属性时,就会得到undefined,
但是请记住,您要向对象添加一个可枚举属性。
发布于 2016-06-01 16:01:11
您可以按以下方式使用Object.assign,因为它会忽略非对象参数:
let data
let something = true
data = Object.assign(
{ name: 'String' },
something && {something: 'Something'}
)
console.log(data)
或者,如果你愿意
something ? {something: 'Something'} : {}https://stackoverflow.com/questions/37572864
复制相似问题