A way to prevent properties to be added to an object if they are null or undefined.

Rodrigo Carranza rodrigocarranza at outlook.com
Wed Nov 29 03:29:41 UTC 2017


________________________________

Yeah, it was wrong, I'm currently using like

```js
let ret = { ... ( couldBeNull ? {couldBeNull} : {} ) }
```

Yours is better and the usual idiom a bit hard to understand.

What I'm proposing is something like this

```js
let ret = { couldBeNull? }
```
or if you want a different name for the property

```js
let ret = { bar ?: couldBeNull }
```

It is not like there is no way to do this, there are plenty. But this way could make code a bit easier to read.

P.D: Sorry for the duplicates and that new thread, I don't understand so much this client and it is acting weird. Also I'm new to mailing lists.

________________________________
De: J Decker <d3ck0r at gmail.com>
Enviado: martes, 28 de noviembre de 2017 09:07 p.m.
Para: Michał Wadas
Cc: Rodrigo Carranza; es-discuss at mozilla.org
Asunto: Re: A way to prevent properties to be added to an object if they are null or undefined.

Or feed it through JSON.parse( JSON.strinigfy( o ) ) which will delete undefined things; doesn't help with null.

On Tue, Nov 28, 2017 at 5:50 PM, Michał Wadas <michalwadas at gmail.com<mailto:michalwadas at gmail.com>> wrote:
You can just use proxy with proper set trap.

On Wed, 29 Nov 2017 at 02:30, Rodrigo Carranza <rodrigocarranza at outlook.com<mailto:rodrigocarranza at outlook.com>> wrote:
A way to prevent properties to be added to an object if they are null or undefined.

Currently this can be accomplished in many ways:

With an if:
```js
function foo(couldBeNull){
let ret = {}
if(couldBeNull){
ret.couldBeNull = couldBeNull
}
return  ret
}
```

With ternary (kind of gross)
```js
function foo(couldBeNull){
let ret = {}
couldBeNull ? (ret.couldBeNull = couldBeNull) : null
return  ret
}
```

Also gross
```js
function foo(couldBeNull){
let ret = {}
couldBeNull && (ret.couldBeNull = couldBeNull)
return  ret
}
```

A bit hard to read:
```js
function foo(couldBeNull){
let ret = {
...({couldBeNull} : {})
}
return  ret
}
```

Requires importing a lib or writing the function by yourself. Also it has to iterate over all values
```js
function foo(couldBeNull){
let ret = {
couldBeNull
}
ret = removeEmptyValues(ret) // imported from some library
return  ret
}
```

Wouldn't it be better something like this?:

```js
function foo(couldBeNull){
let ret = {
couldBeNull?
}
return  ret
}
```

Or if you want to set other property name

```js
function foo(couldBeNull){
let ret = {
bar ?:  couldBeNull // bar is not added if couldBeNull is null or undefined
}
return  ret
}
```

[https://ipmcdn.avast.com/images/icons/icon-envelope-tick-round-orange-animated-no-repeat-v1.gif]<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>      Libre de virus. www.avast.com<https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient>
_______________________________________________
es-discuss mailing list
es-discuss at mozilla.org<mailto:es-discuss at mozilla.org>
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
es-discuss at mozilla.org<mailto:es-discuss at mozilla.org>
https://mail.mozilla.org/listinfo/es-discuss


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20171129/cf89876b/attachment-0001.html>


More information about the es-discuss mailing list