我有这段代码:
var returnValue = item.fname + " " + item.mname + " " + item.lname
returnValue.replace(null," ");
return returnValue ;
有时一个字段是空的,所以
returnValue
会是:
"John null Doe"
或者
"John something null"
我想要去掉"null"
,但我的代码似乎不起作用。有人能帮我解决吗?
我有这段代码:
var returnValue = item.fname + " " + item.mname + " " + item.lname
returnValue.replace(null," ");
return returnValue ;
returnValue
会是:
"John null Doe"
或者
"John something 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(" ");
var returnValue = (item.fname || " ") + " " + (item.mname || " ") + " " + (item.lname || " ");
return returnValue;
在混合使用变量类型时要小心(例如字符串和null)。最好确保变量已设置或具有备用选项。
[item.fname, item.mname, item.lname].filter(v => !!v).join(' ')
Boolean
作为 cb 进行过滤。 - Nina ScholzBoolean()
将会忽略额外的参数。 - Andreasvar returnValue = item.fname
if(item.mname)returnValue += " " + item.mname
if(item.lname)returnValue += " " + item.lname
return returnValue
试一下这个
> return (item.fname ? item.fname : '') + " " + (item.mname ? item.mname : '') + " " + (item.lname ? item.lname : '');
[item.fname, item.lname, item.lname].join(' ');
例如:
const item = {}
item.fname = 'foo'
item.lname = 'bar'
console.log([item.fname, item.mname, item.lname].join(' '))
const item = {}
item.fname = 'foo'
item.lname = 'bar'
const joined = (item.fname || '') + " " + (item.mname || '') + " " + (item.lname || '')
console.log(joined)
尝试使用三元运算符来避免空值:
var returnValue = item.fname + " " + item.mname ? item.mname : "" + " " + item.lname
returnValue
中的null
对象替换为字符串形式的null
。 - JustCarty