web-dev-qa-db-ja.com

undefinedを空の文字列に置き換える方法

私は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);
    };
14
texas697

undefinedはプリミティブ値です 。識別子undefinedと比較する代わりに、9文字のstring "undefined"と比較しています。

単に引用符を削除します。

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

または、typeofの結果と比較します。これはis文字列です。

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

この答え に従ってあなたが欲しいものは

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

「== 'undefined'」を削除するだけです

if (!$scope.currentItem.JobOriginalBudget) {
    doc.text(50, 190, " ");
}
2
theDarse
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>
2

アイテムがオブジェクト使用の場合、この関数は次のようになります。

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