我正在从API中接收数据,其中有2个title
和2个author
属性(例如,将其称为title_1
和title_2
)。我只需要一个标题或作者保存到我的数据库,因此如果title_1
和title_2
都为空,我认为某个项目无效。
所以这就是问题所在,它似乎适用于作者,但我仍然总是保留一个项目,尽管title_1
为null
而title_2
为""
}。我不确定为什么,但我想我的解析值可能存在问题?
所以这里是我提到的项目的JSON:
"title_1": null,
"title_2": "",
正如我所说,它成功地将作者与同样的问题拼接在一起。首先,我获取数据(以字符串形式接收)并解析它:
request.get(apiUrl, function(error, response, body) {
if(!error && response.statusCode == 200) {
var data = JSON.parse(body);
callback(error, data.items);
}
});
然后我稍后打电话给removeInvalidItems(data);
:
function removeInvalidItems(data) {
for (var i = 0; i < data.length; i++) {
if ( !isValid(data[i].title) && !isValid(data[i].title_2) ) {
data.splice(i, 1);
}
if ( !isValid(data[i].author) && !isValid(data[i].author_2) ) {
data.splice(i, 1);
}
}
return data;
};
正在检查这样的有效性:
function isValid(attr) {
if (attr === null || attr === '') {
return false;
} else return true;
};
有人能想到这个项目仍然继续通过此isValid()
函数有效的原因吗?