检查javascript变量是否为字符串并对其进行修剪的最简洁的方法是什么?
我可以做到:检查javascript变量是否为字符串并对其进行修剪的最简洁的方法是什么?,javascript,ecmascript-6,Javascript,Ecmascript 6,我可以做到: let value = array[index]; if (typeof value === 'string') { value = value.trim(); } let value = array[index] value = typeof value === 'string' && value.trim() || value 只是好奇,是否有一个更紧凑的方法来做到这一点 您不应该需要|。您只需执行typeof value===“string”;这
let value = array[index];
if (typeof value === 'string') {
value = value.trim();
}
let value = array[index]
value = typeof value === 'string' && value.trim() || value
只是好奇,是否有一个更紧凑的方法来做到这一点 您不应该需要
|
。您只需执行typeof value===“string”
;这就足够了
如果您想以更难阅读但更简洁的方式进行操作,您可以:
let value = array[index];
if (typeof value === 'string') {
value = value.trim();
}
let value = array[index]
value = typeof value === 'string' && value.trim() || value
或三元:
let value = array[index]
value = typeof value === 'string' ? value.trim() : value
不过,你的方式可能还不错。一个好的经验法则是更喜欢可读性更强但更冗长的代码(而不是可读性更低但更紧凑的代码)
@NNNN指出了一种更简洁的方式:
typeof value=='string'&&(value=value.trim())
您不应该需要|
。您只需执行typeof value===“string”
;这就足够了
如果您想以更难阅读但更简洁的方式进行操作,您可以:
let value = array[index];
if (typeof value === 'string') {
value = value.trim();
}
let value = array[index]
value = typeof value === 'string' && value.trim() || value
或三元:
let value = array[index]
value = typeof value === 'string' ? value.trim() : value
不过,你的方式可能还不错。一个好的经验法则是更喜欢可读性更强但更冗长的代码(而不是可读性更低但更紧凑的代码)
@NNNN指出了一种更简洁的方式:
typeof value=='string'&&(value=value.trim())
那么您不能省略实例的检查吗?您是否也打算更新原始数组元素?是否遇到性能问题?如果没有,我就不会担心了。typeof value.trim==“function”和&value.trim()…?如果它像鸭子一样嘎嘎叫……typeof
就足够了,不需要instanceof
为什么你有一个不知道其类型的值?那么你不能省略instanceof
检查吗?您是否也打算更新原始数组元素?是否遇到性能问题?如果没有,我就不会担心了。typeof value.trim==“function”和&value.trim()…?如果它像鸭子一样嘎嘎叫……typeof
就足够了,不需要instanceof
为什么你有一个你不知道类型的值?If(typeof value=='string')value=value.trim()
比你显示的任何一个选项都要紧凑。@nnnnnn是的,你可以这样做。我不喜欢删除大括号{}
虽然一般来说对于if
语句来说(如果你使用的是丑陋的工具,因为它可能会错误地解释代码的话,我想这只是前端的一个问题)if(typeof value=='string'){value=value.trim()}
更紧凑…typeof value=='string'&(value=value.trim())
相当紧凑,但与没有{}
的if
相同(没有将==
更改为==
并删除空格等)。@JoshBeam在什么情况下,丑陋的人会因为缺少花括号而感到困惑?if(type of value=='string')value=value.trim()
比您显示的任何一个选项都更简洁。@nnnnnn是的,您可以这样做。我不喜欢删除大括号{}
,但一般来说,对于if
语句(我想这只是前端的一个问题,如果您使用丑陋的工具,因为它可能会错误地解释代码)if(typeof value==“string”){value=value.trim()}
更加紧凑…typeof value=='string'&&(value=value.trim())
相当紧凑,但与没有{}
的相同(无需将==
更改为=
并删除空格等).@JoshBeam在什么情况下,一个丑陋的人会因为缺少花括号而感到困惑?