我有一个以字符串作为pubDate的json文件。pubDate可以是2010年3月、2010年3月、2010/1/1、空白或不可用。我所拥有的是
var res = pubDate.substr(0, 4);
var i = parseInt(res, 10);
if (!isNaN(i)) {
if (i > 2010) {
//do work
}
}
这是可行的,但我希望有一些更干净的代码,这样我就可以在一两行代码中做到这一点。这有可能吗?
发布于 2018-06-29 03:21:52
1)如果i
为NaN
,则i > 2010
为false,不需要进行isNaN
校验。
2) ParseInt会忽略后缀字符,因此您不必使用substr:
const year = parseInt(pubDate);
if(year > 2010) {
//...
}
发布于 2018-06-29 03:10:24
这是一个相当混乱的情况,听起来像是,除非折叠其中的一些行,否则我认为你没有太多的选择。通过折叠一些行,我的意思是字面上的:
var i = parseInt((pubDate.substr(0, 4), 10);
if (!isNan(i) && i > 2010) {
// do work
}
但这是假设你以后不需要"res“来做一些事情,看起来你不应该这样做。
发布于 2018-06-29 03:23:31
可能只有两行代码。也许不是更干净的代码。
var i = (!isNaN(parseInt(pubDate.substr(0, 4))))?parseInt(pubDate.substr(0, 4)):0;
if( i > 2010 ){
//do work
}
https://stackoverflow.com/questions/51089755
复制相似问题