首页 > 解决方案 > 如何用字符串替换未定义的值

问题描述

我尝试使用此代码:

if((data.memberData.workStreak || 0) >= 5){
            won+=400;
            embed.addField(message.language.get("WORK_CLAIMED_HEADINGS")[0], message.language.get("WORK_CLAIMED_SALARY", won))
            .addField(message.language.get("WORK_CLAIMED_HEADINGS")[1], message.language.get("WORK_AWARD"));
            data.memberData.workStreak = 0;
        } else {
            for(let i = 0; i < award.length; i++){
                if (typeof i === 'undefined') {
                   return '<:b_:682865394637078531>';
                }
                if(data.memberData.workStreak > i){
                    let letter = Discord.Util.parseEmoji(award[i]).name.split("_")[1];
                    award[i] = ":regional_indicator_"+letter+":";
                }
            }

但它完全没有做任何事情。 图片

有什么帮助吗?

标签: javascriptnode.jsdiscord.js

解决方案


您可以简单地使用OR运算符并打印字符串而不是 undefined。在下面的语句中 if ais undefinedthen 它将存储空字符串a而不是undefined.

a = a || ''

用下面的行替换你的行:

let letter =Discord.Util.parseEmoji(award[i]).name;
OR
let letter =Discord.Util.parseEmoji(award[i]);

请在下面找到工作片段:

const a = undefined;

console.log(a);
console.log(a || '');


推荐阅读