Как заменить undefined пустой строкой

Я использую jsPdf. Когда поле осталось пустым, в формате pdf будет напечатан "undefined". Я хотел бы заменить это пустой строкой. Я пытаюсь использовать оператор if, но я не получаю его.

 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);
    };

Ответ 1

undefined является примитивным значением. Вместо сравнения с идентификатором undefined вы сравниваете с 9-символьной строкой "undefined".

Просто удалите кавычки:

if ($scope.currentItem.JobOriginalBudget == undefined)

Или сравнить с результатом typeof, который представляет собой строку:

if (typeof $scope.currentItem.JobOriginalBudget == "undefined")

Ответ 2

Как этот ответ Я считаю, что вы хотите

doc.text(50, 190, $scope.currentItem.JobOriginalBudget || " ")

Ответ 3

просто удалите "==" undefined '"

if (!$scope.currentItem.JobOriginalBudget) {
    doc.text(50, 190, " ");
}

Ответ 4

Если item является объектом Object, эта функция:

replaceUndefinied(item) {
   var str =  JSON.stringify(item, function (key, value) {return (value === undefined) ? "" : value});
   return JSON.parse(str);
}

Ответ 5

   

<!-- begin snippet: js hide: false console: true babel: false -->
<p>
<b>Before:</b>
let ab = {
  firstName : undefined,
  lastName : "undefined"
}
<br/><br/>
<b>After:</b>
View Console

</p>