开发者问题收集

从 javascript 中的字符串中删除“null”

2018-10-19
5036

我有此代码:

var returnValue = item.fname + " " + item.mname + " " + item.lname
returnValue.replace(null," ");
return returnValue ;

有时其中一个字段为空,因此 returnValue 为:

“John null Doe”

“John something null”

我想摆脱 “null” ,但我的代码似乎不起作用。

有人可以帮我吗?

3个回答

不要事后替换 null,而只需在它们不为 null 时附加单个名称即可。

var returnValue = "";

if (item.fname !== null) {
    returnValue += item.fname + " ";
}

if (item.mname !== null) {
    returnValue += item.mname + " ";
}

if (item.lname !== null) {
    returnValue += item.lname;
}

return returnValue;

或者,使用 Array.prototype.filter 删除 null:

// store the names in an array
var names = [ item.fname, item.mname, item.lname ];

// filter the array to values where they are `!== null`
var notNullNames = names.filter(x => x !== null);

// join them with spaces
var returnValue = notNullNames.join(" ");
James Monger
2018-10-19
var returnValue = (item.fname || " ") + " " + (item.mname || " ") + " " + (item.lname || " ");
return returnValue;

混合 var 类型时要小心(例如字符串和 null)。最好确保变量已设置或有后备。

Matthi
2018-10-19

我向您推荐另一种技术:将字符串部分放入数组中,对其进行过滤并连接:

[item.fname, item.mname, item.lname].filter(v => !!v).join(' ')
Eugene Tsakh
2018-10-19