1. ホーム
  2. javascript

[解決済み] 文字列がNULLまたは空でない場合のみ、デリミタで文字列を結合します。

2022-04-25 21:36:52

質問

しかし、私は非NULLまたは非空白の文字列のみを連結する簡単な方法を見つけようとしています。

私はいくつかの異なる住所フィールドを持っています。

var address;
var city;
var state;
var zip;

これらの値は、ページ内のいくつかのフォームフィールドと他のいくつかのjsコードに基づいて設定されます。

アドレスの全容を div カンマ+スペースで区切られているので、以下のような感じです。

$("#addressDiv").append(address + ", " + city + ", " + state + ", " + zip);

問題は、これらのフィールドの1つまたはすべてがnull/emptyである可能性があることです。

このフィールド群に含まれる、空でないすべてのフィールドを、文字列に追加する前に個別に長さをチェックすることなく結合する簡単な方法はないでしょうか。

どのように解決するのですか?

検討する

var address = "foo";
var city;
var state = "bar";
var zip;

text = [address, city, state, zip].filter(Boolean).join(", ");
console.log(text)

.filter(Boolean) (と同じです)。 .filter(x => x) ) は、すべての "falsy" 値 (null, undefineds, 空文字列など) を削除します。もし、あなたの"empty"の定義が異なる場合は、例えば、それを提供する必要があります。

 [...].filter(x => typeof x === 'string' && x.length > 0)

は空でない文字列だけをリストに残す。

--

(廃止されたjqueryの回答)

var address = "foo";
var city;
var state = "bar";
var zip;

text = $.grep([address, city, state, zip], Boolean).join(", "); // foo, bar