如何检查数组索引是否不等于参数?

问题描述 投票:0回答:1

仍在通过 HTML 页面创建迷你文本 RPG 游戏来学习 Javascript :) 很好的实践,尝试学习一些新方法或在我的项目中添加一些新的更好的代码。

现在我正在尝试通过函数向我的项目添加语言;

language.addLang = function(name,id){
    if (id != this.log[id]) {
        this[name] = new Object;
        this.log[id] = name
        
    }
    
}

编辑; 试图说是否可以将数组索引号与参数 ID 号进行比较。 参数上的名称只是一个语言名称,例如带有字符串值的英语。 id 就是它将被放入的数组索引。还有一个条件分支,可以将所有文本翻译成该语言以供以后使用。

对于那些想知道日志是什么的人;

language.log = [
  undefined, 'English','Swedish','Japanese','German'
]

总结; 如上所述,日志数组长度现在为 5。 假设我想在我的项目中添加一种我将翻译的新语言,稍后我可以编写 language.addLang('Chinese',5)。 这会将“Chinese”字符串添加到数组索引号 5 中。 然而!如果我从已经存在的不同索引号添加,它将显示一些错误,而不是将“中文”覆盖为另一种语言。

我希望这比我上一篇文章能更好地解释。 我可以手动翻译它,而不是为每种语言添加新对象。 但如果我可以将参数编号与索引编号进行比较,那就可以救命了。

javascript arrays conditional-statements equality
1个回答
-1
投票

@Charliefl 是对的,但我想这可能会为您提供一个线索,通过根据您的其他代码进行修改来应用于您的案例。

var IncludedLanguages = [ 3 , 4 , 5 ] 
var LangObjectsArray = [] 


language.addLang = function(name,id){
   
   if ( IncludedLanuages.includes( id  ) != true )   {
      
            
        
      var obj = { "name" : name , "id" : id  }  
        LangObjectsArray.push( obj ) 
        IncludedLanguages.push( id )
    }
    
}

© www.soinside.com 2019 - 2024. All rights reserved.