如何用空字符串替换undefined

时间:2014-09-16 18:46:53

标签: javascript angularjs jspdf

我正在使用jsPdf。当一个字段留空时,“未定义”将打印在pdf上。我想用空字符串替换它。我正在尝试使用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);
    };

5 个答案:

答案 0 :(得分:11)

undefined is a primitive value。您不是要与标识符undefined进行比较,而是与9个字符字符串" undefined"进行比较。

只需删除引号:

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

或与typeof结果进行比较,其中 是一个字符串:

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

答案 1 :(得分:9)

根据this answer我相信你想要的是

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

答案 2 :(得分:2)

只需删除“=='undefined'”

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

答案 3 :(得分:1)

如果item是Object用途,则此功能:

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

答案 4 :(得分:0)

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>