loading...

re: The shortest way to conditional insert properties into an object literal VIEW POST

TOP OF THREAD FULL DISCUSSION
re: Interesting trick, but what if our value is 0 which can be a valid value to use? So our code: 𝐯𝐚𝐫 𝐜𝐨𝐢𝐧𝐬 = 𝟎; 𝐯𝐚𝐫 𝐨𝐛𝐣 = { 𝐧𝐚𝐦𝐞: "𝐉𝐨𝐡𝐧", ...𝐜𝐨𝐢...
 

Just make sure to internalize what JavaScript considers truthy and you won't think this is a "gotcha" anymore.

So in your specific case you'd probably want to do something like

const coins = 0;
const obj = {
  name: "John",
  ...typeof coins === "number" && !isNaN(coins) && {coins},
};
 

AFAIK, this is considered as a bad practice to use typeof to check the number, as NaN is also has type number (e.g. typeof NaN === "number"; // -> true). Moreover, typeof when used against number will return number, as a result, in lower case (i.e. not Number but number).

Yeah the casing of number was just a typo. Adjusted it to check for NaN.

Code of Conduct Report abuse