我正在使用exif.js从我上传到CMS的图像中提取元数据。当图像没有元数据时,某些值返回“未定义”。我想做的是使用以下内容将此“未定义”值更改为空字符串:(信用:下面的Stanley)
// not set var i means
// i === undefined
var j = (typeof (i) !== 'undefined' ? i : 'not found');
console.log(j); // 'not found'
然而,在查看代码几个小时之后,我仍然无法弄清楚exif.js如何返回未定义的值,以便我可以将其更改为空字符串。
链接到exif.js:https://github.com/exif-js/exif-js/blob/master/exif.js
答案 0 :(得分:0)
var i = "undefined";
您已将字符串设置为var i
,因此无法测试是否未定义。
您可以使用typeof (i) !== 'undefined'
检查var类型并检查是否为'undefined',然后使用Short Circuit Operators返回值
e.g。
// not set var i means
// i === undefined
var j = (typeof (i) !== 'undefined' ? i : 'not found');
console.log(j); // 'not found'
答案 1 :(得分:0)
以下是适合我的解决方案:
您只需在变量周围的if
函数中使用.getData
语句,就不允许undefined在EXIF.JS库中运行。请注意,如果您关注EXIF.JS Github上的示例,则此代码通常会写在页面上的脚本中。
EXIF.getData(img, function() {
var model = EXIF.getTag(this, "Model");
if (model) {
var modelDataSpan = document.getElementById('model-'+id);
modelDataSpan.innerHTML = `${model}`;
}