jsにてフィールドコピーした際の空白フィールド"undefined"について

あるアプリで、テーブルの値を別フィールドにコピーしているのですが、指定したフィールドが空白の場合"undefined"ではなく空白のまま処理したいのですが、どのように記述したらよろしいでしょうか。

使用しているコードはこちらになります。

 

gsc-hnd-dadさん

こちらが参考になると思います。
https://developer.cybozu.io/hc/ja/community/posts/900001469426/comments/900000822406

nullもundefinedも偽値(falsy)なので、「A || B」で「AがfalsyならB」といったことができます。

そちら参考に致しましたが如何せんjs知識が乏しく、応用が利きません。

思った場所に(+ row.task_detail.value +の後)単純に追加記述してみましたが、動作せず、保存すら出来ない状態となりました。

 

ご教示お願い致します。

undefined か判定したいのは、row.task_detail.value ですか?
でしたら、A || B は値を比較するものなので、+ row.task_detail.value || ‘’ + になると思います。

うまく動かない時は、ブラウザの開発者ツールを使ってエラーログを見ると良いです。
https://developer.cybozu.io/hc/ja/articles/360038920252

JavaScriptは難しいですよね。自分も勉強中です。
このサイトにあるチュートリアルは基本的なことだけなので、
https://web-camp.io/magazine/archives/26915 などで で紹介されている学習コンテンツを使って勉強しています。

空白のまま処理したい
>ここがそもそも説明違いだったかもしれませんので訂正させて下さい。
上記コードにてテーブルの値を文字列複数行フィールドに転記しています。
その際テーブル内で空白の所がundifinedと記載されてしまうので、テーブル内で空白の値は、空白のまま記載(何も転記しない)したいと言う事です。

上記頂いた情報を元に + row.task_detail.value || ‘’ としましたがやはりundifinedと記載されてしまいました。

また、+ row.task_detail.value || ‘’ の後に改行を入れたいので、続けてどう記載したら良いでしょうか。

確かめてみたところ、row.task_detail.value || ''で row.task_detail.value がundefinedだったら 空文字になるんですけど、
文字列結合(+)と組み合わせて使う場合には、|| で比較している部分をカッコでくくらないと、おかしくなるみたいでした。

なので、18行目は

  • (row.task_detail.value || “”) + “”;

になるはずです。改行は、""を文字列結合すればいいので、上記で改行されるはずです。