首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何替换未定义的返回值?(RequestJS)

如何替换未定义的返回值?(RequestJS)
EN

Stack Overflow用户
提问于 2016-06-28 00:44:27
回答 3查看 78关注 0票数 0

我正在为不和谐创建一个机器人,并尝试用NASA的API做一些事情。然而,每一张图片都没有版权,所以我希望当它发生的时候,用其他的东西来代替“未定义的”。这样做是可能的吗?

下面是我的代码:

代码语言:javascript
复制
    "nasapic": {
        name: "nasapic",
        help: "Utilisez cette commande pour afficher l'image du jour sur http:///apod.nasa.gov/",
        process: function (bot, msg, suffix) {
          request("https://api.nasa.gov/planetary/apod?date="+suffix+"&hd=True&api_key=NNKOjkoul8n1CH18TWA9gwngW1s1SmjESPjNoUFo", function (error, response, body) {
            if (!error) {
                var nasaPic = JSON.parse(body);
                var msgArray = [];
                msgArray.push("Photographie du " + nasaPic.date + " prise par " + nasaPic.copyright + "\n");
                msgArray.push("Titre : **" + nasaPic.title + "**\n");
                console.log(msg.author.name + " " + "a utilisé la commande /nasapic");
                msgArray.push(nasaPic.url);
                if (nasaPic.code == 400) {
                  bot.sendMessage(msg.channel, ":x: Une erreur est survenue. Rappel de la syntaxe : **YYYY-MM-DD**"); }
                if (nasaPic.copyright == undefined) {
                  nasaPic.copyright.replace("undefined", "test");
                  bot.sendMessage(msg, msgArray); }
                else bot.sendMessage(msg, msgArray);
            }
        });
    }
},

下面是两行有问题的代码:

代码语言:javascript
复制
if (nasaPic.copyright == undefined) {
                  nasaPic.copyright.replace("undefined", "test");
                  bot.sendMessage(msg, msgArray); }

谢谢你的帮助。

EN

回答 3

Stack Overflow用户

发布于 2016-06-28 00:46:46

看起来你在找

代码语言:javascript
复制
if (typeof(nasaPic.copyright) == 'undefined') {
    nasaPic.copyright = 'test';
}
票数 1
EN

Stack Overflow用户

发布于 2016-06-28 00:47:37

最简单的事情是:

代码语言:javascript
复制
if (!nasaPic.copyright) {
    nasaPic.copyright = "default copyright";
}

唯一的问题是空值、未定义的值或空值将转到此方法。我认为这在这种情况下更可取。否则,您将需要使用typeof。

票数 1
EN

Stack Overflow用户

发布于 2016-06-28 00:49:14

nasaPic.copyright.replace("undefined", "test");

不会为你工作,因为nasaPic.copyright是未定义的。因为它是未定义的,所以它将不具有可用的.replace函数。相反,请执行以下操作:

代码语言:javascript
复制
if (!nasaPic.copyright) {
      nasaPic.copyright = "test";
      ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38059163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档