'how to replace undefined with a empty string
I am using jsPdf. When a field has been left blank "undefined" is printed on the pdf. I would like to replace that with a empty string. I am trying to use a if statement but I am not getting it.
doc.text(30, 190, "Budget : $");
if ($scope.currentItem.JobOriginalBudget == "undefined") {
doc.text(50, 190, " ");
}
else {
var y = '' + $scope.currentItem.JobOriginalBudget;
doc.text(50, 190, y);
};
Solution 1:[1]
undefined
is a primitive value. Instead of comparing against the identifier undefined
, you're comparing against the 9-character string "undefined
".
Simply remove the quotes:
if ($scope.currentItem.JobOriginalBudget == undefined)
Or compare against the typeof
result, which is a string:
if (typeof $scope.currentItem.JobOriginalBudget == "undefined")
Solution 2:[2]
As per this answer I believe what you want is
doc.text(50, 190, $scope.currentItem.JobOriginalBudget || " ")
Solution 3:[3]
var ab = {
firstName : undefined,
lastName : undefined
}
let newJSON = JSON.stringify(ab, function (key, value) {return (value === undefined) ? "" : value});
console.log(JSON.parse(newJSON))
<p>
<b>Before:</b>
let ab = {
firstName : undefined,
lastName : "undefined"
}
<br/><br/>
<b>After:</b>
View Console
</p>
Solution 4:[4]
simply remove the "== 'undefined'"
if (!$scope.currentItem.JobOriginalBudget) {
doc.text(50, 190, " ");
}
Solution 5:[5]
If item is an Object use, this function :
replaceUndefinied(item) {
var str = JSON.stringify(item, function (key, value) {return (value === undefined) ? "" : value});
return JSON.parse(str);
}
Solution 6:[6]
In my case
doc.text(50, 190, $scope.currentItem.JobOriginalBudget??"")
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | apsillers |
Solution 2 | Community |
Solution 3 | Abdullah |
Solution 4 | |
Solution 5 | Maxime |
Solution 6 |