小编典典

仅当字符串不为 null 或为空时才使用分隔符连接字符串

all

这感觉应该很简单,如果我在这里遗漏了一些东西,很抱歉,但我正在尝试找到一种简单的方法来连接非空或非空字符串。

我有几个不同的地址字段:

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

这些值的设置基于页面中的一些表单字段和一些其他 js 代码。

我想在 a 中输出完整的地址div,用逗号+空格分隔,所以是这样的:

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

问题是,这些字段中的一个或全部可能为空/空。

是否有任何简单的方法可以连接这组字段中的所有非空字段,而无需在将其添加到字符串之前单独检查每个字段的长度?


阅读 104

收藏
2022-08-27

共1个答案

小编典典

考虑

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))删除所有“虚假”值(空值、未定义值、空字符串等)。如果您对“空”的定义不同,那么您必须提供它,例如:

 [...].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
2022-08-27